C# WebService没有';无法读取web.config

C# WebService没有';无法读取web.config,c#,web-services,web-config,C#,Web Services,Web Config,我在web.config中有3个连接字符串,我使用它们的方式如下: using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SomeName"].ConnectionString)) winforms应用程序调用每个metgod 其中一个webmethods无法正常工作,因为它只读取一个connectionString: data source=.\\SQLEXPRE

我在web.config中有3个连接字符串,我使用它们的方式如下:

using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SomeName"].ConnectionString))
winforms应用程序调用每个metgod

其中一个webmethods无法正常工作,因为它只读取一个connectionString:

data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
它不是my web.config中的连接字符串

我以相同的方式调用每个方法

这怎么可能

编辑:

我使用立面:这是结构: WinForms调用WebMethod SaveItem SaveItem调用Facade上的方法:SaveItemAndDoDatabaseStuff
SaveItemAndDoDatabaseStuff做数据库工作

您应该将连接字符串存储在正在执行的任何项目的
web.config
app.config


在您的情况下,您的app.config中应该有winforms应用程序的连接字符串。

我们看不到您的web结构,但您的应用程序是否可能未在IIS中配置为应用程序,因此正在获取主web.config?看起来就像那样


进入IIS并确保它是一个应用程序(它可能有一个cog图标)。

如果您的WinForms应用程序直接与数据库X对话(而不是通过web服务),则数据库X的连接字符串应位于app.config中(在WinForms项目中)


如果您的Web服务(据我所知,这包括您的facade和数据库层)与数据库X、Y和Z对话,那么X、Y和Z的连接字符串需要在Web.config中(在Web服务项目中)

在请求连接字符串之前,为什么不添加一条跟踪行来打印正在使用的配置文件呢。只需添加以下行:

        System.Diagnostics.Trace.WriteLine(
            System.AppDomain.CurrentDomain.SetupInformation.ConfigurationFile,
            "APP_CONFIG");

在此之后设置断点,并查看输出窗口中以“APP_CONFIG:”开头的行。这将提供配置文件的完整路径,并允许您确定在何处加载。如果您仍然看到运行时值与配置文件之间存在差异,则应用程序中的这些值可能在运行时发生了更改。

它使用的是默认连接字符串asp.net has(在.net安装文件夹的machine.config中)

做一个明确的决定:

<configuration>
  <connectionStrings>
    <clear/>
    ... your connection strings here
  </connectionStrings>
</configuration>

... 您的连接字符串在这里

顺便说一句,当你说你正在连接字符串中使用“SomeName”时。它肯定不是您使用的任何随机连接字符串,而是默认值:“LocalSqlServer”。

不,我使用facade:这是结构:WinForms调用WebMethod SaveItem SaveItem调用facade上的方法:SaveItemAndDoDatabaseStuff SaveItemAndDoDatabaseStuff执行数据库操作。只有这个方法不起作用。-1 OP已经提到数据库是从服务器端使用的。你能提供一些澄清吗-第二行您提到您正在web.config中使用连接字符串-第三行您提到您正在使用winforms(winforms使用app.config而不是web.config)-facade:这是设计模式还是某个软件?数据库部分在webservice上。WinForms应用程序是客户端所有三个连接字符串是否都指向SQL Server?@phenevo请检查我的答案,这很可能适用于您的场景。@Raja是的……但问题消失了