C# 未正确获取连接字符串

C# 未正确获取连接字符串,c#,web-services,asmx,C#,Web Services,Asmx,我有一个多层次的项目: 客户端(Windows窗体) WebLayer(asmx webServices) 生意 数据(与数据表一起使用) 在数据层中,我在设置中定义了ConnectionString,但我希望在WebLayer中覆盖此连接。我试图在Web.config中覆盖它,但似乎不起作用。它仍然使用来自业务层的配置 <connectionStrings> <add name="aaa.bbb.ccc.Business.Properties.Settings.E

我有一个多层次的项目:

  • 客户端(Windows窗体)
  • WebLayer(asmx webServices)
  • 生意
  • 数据(与数据表一起使用)
在数据层中,我在设置中定义了ConnectionString,但我希望在WebLayer中覆盖此连接。我试图在Web.config中覆盖它,但似乎不起作用。它仍然使用来自业务层的配置

<connectionStrings>
    <add name="aaa.bbb.ccc.Business.Properties.Settings.ExampleConnectionString"
     connectionString="DataSource=xxxxxx"
     providerName="System.Data.SqlClient" />
  </connectionStrings>


我想问的另一件事是,我无法调试.asmx。当我从Facade创建对象时,它会自动将其更改为Remoting.Proxies.\u TransparentProxy对象,当我尝试访问方法实现的代码时,它不允许我访问。

您首先需要配置级别覆盖吗?这类问题在编程级别上得到了更好的解决,即拥有IConnectionStringProvider和将返回它的DI容器;数据层和web application.Remoting.Proxies的引导DI容器不同。\uu TransparentProxy-客户端不会自动将调试上下文切换到服务器;)您需要将调试器附加到服务器进程。@OndrejSvejdar将调试器更改为以编程方式进行调试器,目前还不是一个真正的选项。这是一个相当大的应用程序,我被要求只更改配置,以避免在数据库服务器发生更改时发布。@OndrejSvejdar与transparentProxy相关,我可以访问WebService层的代码(如您所说附加到另一个进程),但我不能做的是调试业务层。我不知道它是否会影响,但Web服务的两个客户都引用了这个层。