IIS:连接到 .mdf 数据库 - Web 配置问题
我在本地连接到 Northwind.mdf,但是当我将应用程序上传到远程服务器时,出现以下错误:
与网络相关或特定于实例的 建立时发生错误 连接到 SQL Server。服务器 未找到或无法访问。 验证实例名称是否为 正确并且 SQL Server 是 配置为允许远程 连接。 (提供商:SQL 网络 接口,错误:26 - 错误定位 指定服务器/实例)
这些是我尝试过的几个选项:
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Northwind.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
上面的一个在本地工作。
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\ASP\TestSite\App_Data\Northwind.mdf; Integrated Security=True;Connect Timeout=30;User Instance=True;Trusted_Connection=Yes"/>
</connectionStrings>
服务器上安装了 SQL Server 2005
谢谢,
伊利亚
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
请按照下列步骤操作:
1:使用 Sql Server Management studio 将 Northwind.mdf 连接到服务器上的 Sql Server 2005。
2:修改 web.config 中的连接字符串,使其指向服务器上的数据库。
如何分离/附加数据库。
Follow these steps:
1: Attach your Northwind.mdf to your Sql Server 2005 on your server using the Sql server Management studio.
2: Modify the connectionstring in your web.config so that it points to the db on your server.
How to detach / attach db.
有几点需要检查:
A couple things to check:
然后阅读如何配置 SQL Server 2005 以允许远程连接
并确定 Northwind 的位置。 mdf是对的!
And then read How to configure SQL Server 2005 to allow remote connections
And be sure the location of Northwind.mdf is right!
以下是需要检查的几点:
如果您要部署到共享托管环境中,则主机很可能不会在 Web 服务器上运行 SQL Server。请他们确认并向您提供 。
您使用的连接字符串看起来很可疑。如果您的服务器上已安装 SQL Server,但作为“默认”实例,则您不需要连接字符串
数据源
的\SQLEXPRESS
部分。只需使用.
或(local)
.如果确实安装了 SQL Express,并且是使用实例名称
SQLEXPRESS
安装的,则检查站点身份是否具有有效的登录名以及对数据库的正确权限。此身份可以是工作进程帐户(NETWORK SERVICE
、ApplicationPoolIdentity
、自定义帐户)或网站的 IIS 匿名帐户(如果启用了 ASP.NET 模拟)。我的最后一点很重要:
AttachDbFilename
和User Instance=True
特定于 SQL Express,它支持称为“用户实例”。此功能不适合专用或共享托管环境。我的建议是
Here's couple of points to check:
If you're deploying into a shared hosting environment the chances are that the host won't be running SQL Server on the web servers. Ask them to confirm and provide you with the .
The connection string you're using looks suspicious. If SQL server has been installed on your server but as the "Default" instance then you don't need the
\SQLEXPRESS
part of the connection stringData Source
. Just use.
or(local)
.If it is indeed SQL Express installed and it's been installed with the instance name
SQLEXPRESS
then check that the site identity has a valid login and the correct permissions on your database. This identity could be the worker process account (NETWORK SERVICE
,ApplicationPoolIdentity
, custom account) or the site's IIS anonymous account (if ASP.NET impersonation is enabled).My final point is important:
AttachDbFilename
andUser Instance=True
are specific to SQL Express which supports a concept known as "User Instances". This feature is not suitable for dedicated or shared hosting environments.My advice is to