【问题标题】:Connection String Conversion for Deployment on IIS在 IIS 上部署的连接字符串转换
【发布时间】:2014-07-10 18:53:23
【问题描述】:

我是 WCF 的新手,我已经创建了一个 wcf 服务和一个要使用 LINQ 写入的数据库。在我的 web.config 文件中它仍然使用标准连接字符串(我不太了解连接字符串的内容)

connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\jarvis.mdf;Integrated Security=True"

创建数据库时自动生成。我的 WCF 接口具有以下操作合同:

[WebGet(UriTemplate = "Add", ResponseFormat = WebMessageFormat.Json)]
    string Add();

当我在本地机器上使用"http://localhost:58632/WCFService.svc/Add" 运行 WCF 时,我完全没有问题地写入数据库。(可能是因为连接字符串用于本地连接)

当我尝试在 IP 为 10.0.0.14 的服务器上部署应用程序并运行 http://10.0.0.14/Service/WCFService/Add 时,它不允许我写入数据库。我认为这是因为连接字符串,但我不确定。

我在 IIS 上部署的过程是"

1. Right click on the solution and select Publish...
2. Select Connection and the publish Method is Web Deploy Package
3. I go to the Package location and go in to the zip file to get the content.
4. Place the content in the wwwroot/Service folder, then I attempt to write.

当 WCF 部署在 IIS 上并且必须在运行 WCF 的服务器上安装 SQL Server 时,我将如何更改连接字符串以便可以写入数据库?我不想使用外部库或应用程序,例如 SlowCheetah

【问题讨论】:

    标签: c# database wcf iis visual-studio-2013


    【解决方案1】:

    您有用于部署的配置转换吗?

    一个典型的项目在根目录下有一个web.config 文件,下面有web.Debug.configweb.Release.config 文件。

    您可以在部署时使用这些转换文件来更改连接字符串。 编辑:如果您使用“发布”构建配置进行部署,则将使用 web.Release.config 转换等。此外,仅定义部署时需要更改的配置项的转换。 http://msdn.microsoft.com/en-us/library/dd465326%28v=vs.110%29.aspx

    需要更新连接字符串“数据源”属性以指向运行数据库的任何位置。如果它是另一台服务器,则将该服务器主机名放在那里。如果它应该与 WCF 服务在同一台服务器上运行,那么您需要在该服务器上安装 SQL。

    【讨论】:

    • 我在服务器上安装了 SQL Server。必须指向新位置的数据源,是否必须将数据源更改为./SQLExpres
    • 如果您使用默认设置安装了 SQL Express,那么是的,该实例应该可以通过 ./SQLExpress 访问。所以连接字符串应该是这样的:Data Source=./SQLExpress;Initial Catalog=jarvis;Integrated Security=true;
    • 如果我使用 SQL Server?
    • 您能否使用服务器上的 SQL Server Management Studio 连接到数据库?如果是这样,只需在连接字符串中使用相同的实例名称。
    猜你喜欢
    • 2013-01-14
    • 2014-09-07
    • 2012-11-08
    • 2015-10-07
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多