直接通过iisexpress.exe启动网站时出现HTTP 500.21错误

时间:2012-06-24 10:05:59

标签: asp.net iis iis-7 iis-express

当我尝试通过iisexpress.exe直接运行网站时,我收到错误消息。这适用于所有网站。我使用的命令如下:

  

。\ iisexpress.exe / site:MultipleRoutes

该网站成功启动但我收到以下错误:

  

HTTP错误500.21 - 内部服务器错误

     

处理程序“ExtensionlessUrl-Integrated-4.0”有一个坏模块   模块列表中的“ManagedPipelineHandler”

我假设某个网站不是在ASP.NET下运行但是当我通过VS启动网站时,没有问题。

有什么想法吗?

修改

这是另一个事实:当我尝试通过指定路径而不是在applicationHost.config文件中注册的站点名称来运行网站时,该站点运行完全正常:

  

。\ iisexpress.exe / path:D:\ Dropbox \ Apps \ MultipleRoutes / port:1672   /clr:v4.0

8 个答案:

答案 0 :(得分:15)

这对我有用:

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -i

答案 1 :(得分:4)

这对我来说是一个32位与64位的问题,我的用户配置文件目录中的applicationHost.config只包含32位模块声明,但试图以64位运行。

IIS Express安装在C:\ Program Files \ IIS Express \ AppServer中包含一个有效的64位配置,所以我只是用我的一个覆盖了我的个人资料目录中的一个,并且事情开始起作用了。

答案 2 :(得分:2)

听起来你的用户applicationHost.config可能有错误。如果您转到文档文件夹然后转到\ config \ applicationhost.config,您应该看到iisexpress正在使用的配置文件。搜索ManagedPipelineHandler和ExtensionlessUrl。有什么事情可以说是不对劲吗?

答案 3 :(得分:1)

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -i

让他人记住,因为他们在这个过程中像我一样挣扎。

答案 4 :(得分:0)

以下是使用IIS Express运行我的x64位IIS应用程序所需进行的完整更改,以便远程主机可以访问它:

iisexpress /config:"C:\Users\test-user\Documents\IISExpress\config\applicationhost.config" /site:MyWebSite
Starting IIS Express ...
Successfully registered URL "http://192.168.2.133:8080/" for site "MyWebSite" application "/"
Registration completed for site "MyWebSite"
IIS Express is running.
Enter 'Q' to stop IIS Express

配置文件(applicationhost.config)的部分添加如下:

<sites>
  <site name="MyWebsite" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
      <virtualDirectory path="/" physicalPath="C:\build\trunk\MyWebsite" />
    </application>
    <bindings>
      <binding protocol="http" bindingInformation=":8080:192.168.2.133" />
    </bindings>
  </site>

可以按如下方式启用64位版本的.NET框架:

<globalModules>
    <!--
        <add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" />
        <add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
    -->             
    <add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />

答案 5 :(得分:0)

只需运行寄存器asp.net .. 你可以在C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319找到它.. 通过cmd(管理员)运行它,如下所示:

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -i 你会好起来的......

答案 6 :(得分:0)

重新安装.NET框架

以后安装IIS .NET框架时会出现此问题。简单的解决方案是重新安装.NET框架或检查安装向导上的修复。 或者你可以安装最新版本的.NET框架....... https://www.microsoft.com/en-in/download/details.aspx?id=49982 第一次配置DNN 8时遇到了同样的问题。

答案 7 :(得分:-1)

您需要升级。

运行C:\Program Files\IIS Express\UpgradeApplicationHost.js

从32位迁移到64位时为我工作。