Asp.net mvc 4 如何在IIS7上发布MVC4项目

Asp.net mvc 4 如何在IIS7上发布MVC4项目,asp.net-mvc-4,iis-7,sql-server-2008-r2,Asp.net Mvc 4,Iis 7,Sql Server 2008 R2,我正在尝试使用SQLServer2008R2在IIS7.0上发布MVC4.0项目。 我使用“Windows身份验证”,我的连接字符串为 <add name="PFTMEntities" connectionString="metadata=res://*/PFModel.csdl|res://*/PFModel.ssdl|res://*/PFModel.msl;provider=System.Data.SqlClient;provider connection string=&

我正在尝试使用SQLServer2008R2在IIS7.0上发布MVC4.0项目。 我使用“Windows身份验证”,我的连接字符串为

   <add name="PFTMEntities" connectionString="metadata=res://*/PFModel.csdl|res://*/PFModel.ssdl|res://*/PFModel.msl;provider=System.Data.SqlClient;provider connection string=&quot; data source=DEW-PC\SQLEXPRESS;initial catalog=PFTM;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework;persist security info=True;&quot;" providerName="System.Data.EntityClient" />

当我构建这个项目并从VS'12运行时,它不会给出任何异常,但当我要从本地服务器发布这个项目时,它会给出以下异常


网站上的数据库配置有几个方面可能会导致问题

  • 服务器是否使用SQL server的快速版本或正式版本? 您可以尝试将“数据源=DEW-PC\SQLEXPRESS”更改为“数据源=。”

  • SQL Server是否允许网络服务访问PFTM数据库? 您需要在SQL Server 2008 R2中为Network_服务创建登录名,并在PFTM数据库中创建用户


  • 三种方案取决于您的ASP.NET应用程序

  • (由于性能原因,不推荐使用)您的ASP.NET使用Windows身份验证,登录的用户可以访问MS SQL数据库

    在这种情况下,您可以使用模拟来使用与登录用户相同的凭据来连接到数据库

  • (推荐)您的ASP.NET正在以AppPoolIdentity身份运行,不得更改为其他帐户以上两种情况均不适用

    您必须在MS SQL Server上启用混合身份验证,并切换到对连接字符串使用用户名和密码


  • 来源:

    在web.config中设置
    ,然后检查错误服务器上sql server的名称是什么?是DEW-PC\SQLEXPRESS吗?或(本地)\sqlexpress或just(本地)?您可以将web.config文件中的设置为上述状态,或者在可能记录任何其他异常详细信息的情况下查看Windows Eventviewer部分。我已经尝试了第一个条件,但在此处不起作用..:(我知道第二个条件可以正常工作。但我需要在“Windows身份验证模式”下运行此项目。我尝试了您的第一个解决方案。但仍然不起作用…我知道当我在SQL Server中提供“用户名”和“密码”时,此项目可以完美运行…但我想在“Windows身份验证模式”下运行此项目,请根据以下内容检查您的配置:,然后重新启动IIS,看看是否有效
    <configuration>
      <system.web>
        <authentication mode="Windows"/>
        <identity impersonate="true"/>
      ...
      </system.web>
    </configuration>
    
    exec sp_grantlogin 'domainName\WebServerMachineName$'
    exec sp_grantdbaccess 'domainName\WebServerMachineName$'