繁体   English   中英

当从客户端计算机通过浏览器连接到网站时,为什么IIS7被阻止访问我的数据库?

[英]Why is IIS7 blocked from accessing my database when connecting to a website via a browser from a client machine?

当我从运行IIS的同一台计算机上访问网站时,我可以连接到数据库,但是如果我尝试远程访问它,则无法连接。 我设法使其连接的唯一方法是当我指定物理路径凭证时:

点击打开图片

这对我不起作用,因为在查询数据库时,我使用用户名作为搜索条件,因此我总是获得相同的用户名(在物理路径凭据中指定的用户名)。

我很困惑,因为在本地和远程访问网站时,我使用相同的凭据,但得到的结果却不同。

这是尝试远程访问站点时抛出的异常:

ByNadexLoginSystem.Exception:System.Exception:'SelectDataObject()'失败---> System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:命名管道提供程序,错误:40-无法打开与SQL Server的连接)---> System.ComponentModel.Win32Exception:访问被拒绝---内部异常堆栈跟踪结束

我曾尝试按此处指出的方法添加文件夹权限: ASP.NET应用程序页在客户端计算机上无法正常运行 ,无论如何都不会成功。

SQL Server配置为允许远程连接。

我敢肯定这是一个权限问题,我根本找不到。 有任何想法吗?

我找到了解决问题的方法,我想感谢肖恩·兰格Sean Lange) 由于他的问题,这给了我一系列的调查依据。 在这里查看msdns文档时, https ://msdn.microsoft.com/en-us/library/bsz5788z.aspx我发现了这一点:

如果SQL Server与Web服务器不在同一台计算机上,则Windows身份必须能够通过网络流到SQL Server的远程实例。 (已经使用Kerberos身份验证正确配置的Windows网络可以执行此操作。)但是,根据身份配置元素中的设置,在ASP.NET应用程序的操作系统线程上建立的Windows身份可能无法传递正确地连接到远程SQL Server。

在IIS中,只有基本身份验证才能使用安全令牌登录用户,该令牌在网络上流向远程SQL Server。 默认情况下,与身份配置元素设置一起使用的其他IIS安全模式将不会生成可以对远程SQL Server进行身份验证的令牌。

启用模拟和基本身份验证(禁用Windows身份验证)解决了它!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM