通过局域网访问数据库运行在本地主机上的ASP.NET

本文关键字:主机 NET ASP 局域网 访问 数据库 运行 | 更新日期: 2023-09-27 18:25:15

我使用的是Microsoft Visual Studio 2013 Ultimate。

我有一个与WSN连接的C#应用程序来收集并保存数据库中的所有传感器读数。它运行良好且稳定。

后来,我决定添加ASP.NET应用程序(使用相同的软件开发),以便LAN中的其他计算机可以访问我的页面并检查测量值。我有一个web表单,它几乎没有标签和按钮,以确保在数据库表中前后移动。当我从Visual Studio启动它时,它运行良好,但当我尝试从IIS访问时,它不起作用。

我有这个错误(正文的主要部分):

在建立与SQL Server的连接时,发生了与网络相关或特定于实例的错误。找不到或无法访问服务器。请验证实例名称是否正确,以及SQL Server是否已配置为允许远程连接。(提供程序:SQL网络接口,错误:50-发生本地数据库运行时错误。无法创建自动实例。有关错误详细信息,请参阅Windows应用程序事件日志。

我已经安装了IIS,可以从浏览器访问"localhost"(出现IIS映像)。我使用Visual Studio中的"发布"选项发布了网站。

我在这个论坛上看到了一些非常相似的问题,但我没有找到答案。你能认出问题出在哪里吗?

谨致问候。

通过局域网访问数据库运行在本地主机上的ASP.NET

如果您使用windows登录连接到sql server(在连接字符串中,您将使用Integrated Security=true),我认为DeanOC的答案将适用,在这种情况下:

  1. 在IIS中,选择右侧的web应用程序,单击"高级设置",会弹出一个对话框,您可以看到您的网站正在使用哪个应用程序池
  2. 关闭对话框,转到"应用程序池",右键单击所需的应用程序池,然后转到高级设置
    1. 将"流程模型"下的应用程序池的"标识"更改为当前的windows登录名

http://www.codeproject.com/Articles/674930/Configuring-IIS-ASP-NET-and-SQL-Server

一切都解释得很好。只要按照程序进行,它就会——是的,解决了。:)

该消息意味着您所指向的sql server实例没有运行,或者您指向了错误的sql服务器实例。如果您能够从visualstudio运行应用程序,那么sql server应该正在运行,这意味着您的连接字符串是错误的。

在发布期间,msbuild将运行配置转换,即如果将生成配置文件设置为发布,它将把web.config中的连接字符串更改为web.release.config中的连接串。请在IIS网站中检查您的连接字符串,并检查您的密码是否正确

您可以在SQL Server配置中启用TCP/IP。

Microsoft SQL Server xxx->配置工具->SQL Server配置管理器->选择TCP/IP。右键单击并选择启用

因此,您可以从本地计算机成功连接,但从其他服务器的IIS访问时会失败。

我认为您正试图从网络中的另一台计算机而不是sql server访问网页,在这种情况下,您必须向您的网站添加绑定。默认情况下,该站点仅绑定到localhost端口80,这意味着只能从同一台机器中访问它。你需要一个带有dns条目的url或一个静态ip地址来连接到你的机器。查看IIS绑定:

  1. http://blogs.technet.com/b/chrad/archive/2010/01/24/understanding-iis-bindings-websites-virtual-directories-and-lastly-application-pools.aspx
  2. http://technet.microsoft.com/en-us/library/cc731692(v=ws.10).aspx

因为当其中一个连接到数据库时,您以这种方式使用了附加模式,而另一个不能像打开文件一样使用它。只有在同一服务器上的人才能访问你的数据库。为了解决这个问题,您必须将数据库添加到SOL服务器管理器中,之后您可以使用这个连接字符串

Data Source='server IP';Initial Catalog='database name';Persist Security Info=True;User ID='your user name';password='your password'

请关注这个视频在此处输入链接描述