天天看点

在Windows 2008 R2 IIS 7.5 下发布 MVC 2 应用程序

首先说明程序和环境:

应用程序 : VS 2008 + MVC 2.0

发布环境 : Widnows 2008 R2 Server + IIS 7.5

问题说明  :  该mvc应用程序在 xp/server 2003 + IIS 6 下面工作正常,但是当发布到 IIS 7.5 环境时,出现如下错误

(An internal error occurred.)

(System.Security.Cryptography.CryptographicException: An internal error occurred.

   at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)

   at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(Byte[] rawData, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx)

   at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags)

   at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData)

   ... ... ...

或者会提示出现 404.0 错误,究其原因,应该是 MVC 模块,或者账户权限的问题,现解决方法如下:

解决方法:

1. 确保安装了 .Net Framework 3.5.1 Features

在Windows 2008 R2 IIS 7.5 下发布 MVC 2 应用程序

2. 新建 application Pool

   新建的 application pool 名为“Test Web Site“,属性设置如下

在Windows 2008 R2 IIS 7.5 下发布 MVC 2 应用程序

3. 添加 MVC 应用程序

在Windows 2008 R2 IIS 7.5 下发布 MVC 2 应用程序

并设置 "mvcSite" 应用程序的Application Pool 为新建的 "Test Web Site".

4.  添加 mvc 2 Handler Mappings.

双击 "Handler Mappings", 然后单击右上角 "Add Wildchard Script Map ..."

在Windows 2008 R2 IIS 7.5 下发布 MVC 2 应用程序

5. 必要时,重启 站点 或者 Application Pool, 或者重新安装 .net framework, 如运行命令:

C:\Windows\Microsoft.NET>%windir%/Microsoft.NET/Framework/v4.0.30319/aspnet_regiis.exe -i

经过上述操作,正常情况下是可以工作的。

继续阅读