我正在使用VS 2012,使用Windows凭据连接到SQL Server 2008主机。我可以从Management Studio中正常连接,但是当我运行一个Web应用程序(IIS 7.5集成了ASP.NET 7 ASP.NET 4.0)并且我的应用程序尝试连接时,我得到了这个:
用户' MyDomain \ MyMachineName $'登录失败。
由于某种原因,使用网络标识的IIS应用程序池不使用MyUserName而是使用我的计算机名称。我的连接字符串是:
<connectionStrings>
<clear />
<add name="Assignment"
connectionString="Data Source=a.b.c.d;Initial Catalog=My_Db;Trusted_Connection=true;Max Pool Size=200;Pooling=True;" />
</connectionStrings>
我应该提到这是一台新的(对我而言)电脑。我看了凭证经理,那里什么都没有。任何想法为什么IIS和我的网络应用程序使用错误的东西?
答案 0 :(得分:1)
当您在网络服务标识下运行应用程序池时,IIS实际上正在完成它的设计目的。
在域环境中使用网络服务帐户非常棒 效益。作为网络服务运行的工作进程访问网络 作为机器帐户。机器帐户是在机器上生成的 加入了一个域名。它们看起来像这样:
<domainname>\<machinename>$
,例如:mydomain \ machine1 $
关于这一点的好处是网络资源 像文件共享或SQL Server数据库可以进行ACL以允许此操作 机器帐户访问。
以上引用来自以下文档......
http://www.iis.net/learn/manage/configuring-security/application-pool-identities
希望这能解决为什么它没有按照你期望的方式运作的问题。
至于如何让它以你想要的方式工作,我认为这篇文章应该回答这个问题,如果没有,一些基本的谷歌搜索应该提供很多关于如何正确配置你的环境的信息你正在尝试做什么。