我正在使用 Microsoft Visual Studio 2013 Ultimate。
我有一个与 WSN 连接的 C# 应用程序,用于收集所有传感器读数并将其保存在数据库中。运行良好且稳定。
后来我决定添加 ASP.NET 应用程序(用同一软件开发),以便局域网中的其他计算机可以访问我的页面并检查测量结果。我有一个带有很少标签和按钮的网络表单,以确保在数据库表中向前和向后移动。当我从 Visual Studio 启动它时它工作正常,但当我尝试从 IIS 访问时它不起作用。
我有这个错误(文本的主要部分):
建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供商:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。无法创建自动实例。有关错误详细信息,请参阅 Windows 应用程序事件日志。
我已经安装了 IIS,并且可以从浏览器访问“localhost”(出现 IIS 图像)。我使用 Visual Studio 中的“发布”选项发布了网站。
我在这个论坛上看到了一些非常相似的问题,但我没有找到答案。您能认出问题所在吗?
问候。
我认为如果您使用 Windows 登录名连接到 sql server(在连接字符串中您将有 Integrated Security=true),在这种情况下,DeanOC 的答案将适用:
该消息意味着您指向的 sql server 实例未运行,或者您指向了错误的 sql server 实例。如果您能够从 Visual Studio 运行该应用程序,那么 sql server 应该正在运行,这意味着您的连接字符串是错误的。
在发布期间,msbuild 将运行配置转换,即如果构建配置文件设置为发布,它将把 web.config 中的连接字符串更改为 web.release.config 中的连接字符串。检查 IIS 网站中的连接字符串并检查密码是否正确
您可以在 SQL Server 配置中启用 TCP/IP。
Microsoft SQL Server xxx -> 配置工具 -> SQL Server 配置管理器 -> 选择 TCP/IP。右键单击并选择启用
因此,您在本地计算机可以连接成功,但从其他服务器的IIS访问时会失败。
我认为您正在尝试从网络中的另一台计算机而不是 sql server 访问网页,在这种情况下您必须添加到您的站点的绑定。默认情况下,该站点仅绑定到本地主机端口 80,这意味着它只能从同一台计算机内访问。您需要一个带有 dns 条目的 url 或静态 IP 地址来连接到您的计算机。查看 IIS 绑定:
http://www.codeproject.com/Articles/674930/Configuring-IIS-ASP-NET-and-SQL-Server
一切都解释得很好。只要按照程序操作就可以 - 是的,解决了。 :)
因为您以这种方式使用附加模式,当其中一个连接到您的数据库时,另一个不能像打开文件一样使用它。并且只有位于同一服务器的人才能访问您的数据库。 要解决此问题,您必须将数据库添加到 SOL 服务器管理器,然后您可以从许多设备访问它 这个连接字符串
Data Source='server IP';Initial Catalog='database name';Persist Security Info=True;User ID='your user name';password='your password'
请关注这个视频 在此输入链接描述
对我有用的技巧:-
转到项目的基目录,然后打开.vs/{YourPorjectName}/Config,您可以在其中看到applicationhost.config文件。
打开文件,尝试找到该部分
将 localhost 替换为 *****。 3. 关闭Visual Studio,以管理员身份运行。 4. 在第四步中,您只需转到 Window Defender 防火墙,然后添加新的入站规则,您必须允许项目正在其上运行的端口。