如何将ASP.NET MVC应用程序部署到Windows Server 2008 IIS 7.5?

3

我已经建立了一个MVC 3应用程序,我的Web服务器2008上安装了IIS 7.5。

在IIS中,我创建了一个新站点,在该站点下创建了一个应用程序,然后将所有的物理文件部署到该应用程序文件夹中:

C:\inetpub\wwwroot\DeveloperToolsPortal\Application 

我还配置了应用程序池,以支持.NET 4。我也从asp.net/mvc3网站下载了MVC3到这个服务器上。

当我使用{0} URL从IIS浏览此应用程序时,我收到{1}错误消息:

{0}: http://localhost:85/Application/Home/Index
{1}: HTTP 500 Internal Server Error

由于80端口已被另一个站点占用,因此该站点被配置为使用85端口。

我还在web.config文件中添加了以下配置:

  <system.webServer>
       <httpErrors errorMode="Detailed" />
    <asp scriptErrorSentToBrowser="true"/>
  </system.webServer>
<customErrors mode="Off"/>

为什么会出现这个错误?我应该怎样解决它?在配置我的应用程序时,我有哪些步骤漏掉了?
我还尝试了另一种方法。我在我的应用程序下添加了一个简单的.htm文件,并尝试通过IIS打开它,但是出现了以下错误:
Internet Explorer cannot display the webpage

我猜测我的IIS出了问题?!

服务器事件查看器将在应用程序日志中包含异常详细信息。 - jrummell
1
它是否应该链接到/Views/Home/Index?我认为链接应该是http://localhost:85/Application/Home。 - jao
@jao,你是对的;已更新。不过结果还是一样的。 - The Light
@jrummell,事件查看器似乎没有记录有关IIS错误的任何信息。 - The Light
3个回答

2

不要将它放在C:\inetpub\wwwroot的子目录中

问题在于,默认情况下,C:\inetpub\wwwroot中有一个web.config文件,即使您的站点不直接位于该目录中,IIS也会从中读取。

您可以在C:\inetpub中创建另一个文件夹,并将您的站点放入其中。

此外,您可以使用不同的主机头在相同的端口上运行多个站点。


我将它移出去了,结果还是一样。我还放了一个HTML文件在那里,但它显示“Internet Explorer无法显示网页”! - The Light
尝试更改应用程序池使用的身份,并确保它具有访问您网站目录以及C:\ Windows \ Temp的权限。 - Makotosan
你可以将你的网站放在C:\inetpub\wwwroot的子文件夹中,但是要小心,因为那里的web.config文件会影响子文件夹。不过,你可以使用应用程序特定的web.config文件来覆盖它们。 - jrummell

0

出于好奇,端口85是从哪里来的?尝试将其删除(HTTP的默认端口为80)。此外,请查看应用程序错误日志以获取有关错误的其他信息。还有一个web.config部分,您可以设置以显示详细的错误消息(这不应该在生产中设置)。

<customErrors mode="Off">
</customErrors>

更新一下,这只是我在IIS中使用的端口。我已经添加了customErrors off; 没有任何区别。 - The Light

0

我使用服务器管理器添加了一些功能/服务到我的IIS,并使用aspnet_regiis -ir注册了asp.net,这样错误就解决了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接