在Core 1.1.1
上部署了ASP.NET MVC Windows 2012 Server R2
。关注this ASP.NET文章(安装了DotNetCore.1.0.5_1.1.2-WindowsHosting包等)。如果我们按照以下步骤,应用程序在服务器上作为localhost运行正常:
http://localhost:5000
http://IP Address/MyWebapplication
时,我们会获得500 - Internal Server Error
注意:我们测试过,如果我们在IIS上只有一个Index.html页面托管一个简单的Web应用程序(不 ASP.NET Core),我们就可以访问来自同一网络上另一台计算机的应用程序,例如http://IP Address/MySimpleHtmlApp
。所以问题似乎与IIS上的ASP.NET Core部署有关。 问题:我们可能缺少什么以及如何解决它?
更新: IIS具有打开的默认端口80。当我们直接从服务器上的IIS运行应用程序时(即http://localhost:80/MyWebapplication),它会出现以下错误:
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
Detailed Error Information:
Module IIS Web Core
Notification BeginRequest
Handler Not yet determined
Error Code 0x8007000d
Config Error
Config File \\?\D:\TestApp\PublishOutput\web.config
Requested URL http://localhost:80/TestWebApp
Physical Path D:\TestApp\PublishOutput
Logon Method Not yet determined
Logon User Not yet determined
Config Source:
-1:
0:
以下是 web.config 文件(由VS2017
创建):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\TestWebApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</configuration>
<!--ProjectGuid: 21c38c6d-7aff-4624-b310-a0f5f766b461-->
答案 0 :(得分:0)
好吧,首先,你并没有真正将它部署到IIS;你是自我托管的。如果要在IIS下运行它,则需要在IIS中为其创建站点,放入已发布的代码,并将应用程序池配置为运行“无托管代码”。然后,您可以在IIS中为其添加的任何绑定下拉站点。
其次,您的测试用例是“简单网站”,它不使用非标准Web端口(它使用80),而您的ASP.NET Core应用程序是(5000)。这很可能是由于您运行的防火墙,因为大多数防火墙设备将默认阻止访问任何非标准端口。您需要在防火墙上打开该端口的规则,或者在端口80上托管它,就像您使用“简单网站”一样。