从IIS连接到SQL数据库
这是我的连接字符串,web服务(托管在IIS中,在ApplicationPoolIdentity下运行)使用它连接到数据库从IIS连接到SQL数据库,sql,sql-server,iis,web-applications,iis-7,Sql,Sql Server,Iis,Web Applications,Iis 7,这是我的连接字符串,web服务(托管在IIS中,在ApplicationPoolIdentity下运行)使用它连接到数据库 <add name="AdventureWorksEntities"connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl; provider=System.Data.SqlClient;provider connection string=
<add name="AdventureWorksEntities"connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl;
provider=System.Data.SqlClient;provider connection string='Data Source=TestMachine;Initial Catalog=AdventureWorks;
Integrated Security=True;Connection Timeout=60;multipleactiveresultsets=true'" providerName="System.Data.EntityClient" />
当我尝试访问该站点时,出现了一个异常:用户MyDomain\TestMachine$登录失败
为什么IIS尝试使用TestMachine而不是我的用户帐户(例如MyDomain\TestUser)进行连接?
我认为这可能是因为它托管在ApplicationPoolIdentity下,而ApplicationPoolIdentity使用机器凭据
如何指定它以使用发出请求的用户的上下文,而不必在自定义标识下运行应用程序(即,我希望它在ApplicationPoolIdentity下继续运行)
如果我在web.config文件中设置了
,
,则我可以从IIS服务器计算机本地访问该站点,访问数据库正常,但远程访问该站点失败。我的Web服务正在使用Windows身份验证。对此有何想法?您需要在IIS中启用Windows身份验证和ASP.NET模拟
然后在web.config中
<system.web>
<authentication mode="Windows" />
<identity impersonate="true" />
</system.web>
除了impersonate=“false”之外,我还有相同的东西。如果设置impersonate=“true”,则无法从远程计算机访问网站。