2017-04-06 86 views
0

我有一个WCF服务应用程序(A),其中包含web.config中的应用程序设置。多个WCF服务应用程序的应用程序设置变为空?

<appSettings>  
<add key="A" value="a1"/> 

&有一个包含内部的web.config应用设置另一个WCF服务应用程序(B)。

<appSettings> 
    <add key="B" value="b1"/> 
</appSettings> 

然后我把B.dll引用到A里面并调用A类中的B.GetData1()方法。

public string GetData(int value) 
{ 
    B.Service1 b = new B.Service1(); 
    b.GetData1(1); 

    return string.Format("You entered: {0}", value); 
} 

这是B级内的b.GetData1()方法的代码。

public string GetData1(int value) 
{ 
    string s = ConfigurationManager.AppSettings["B"].ToString(); 
    return string.Format("You entered: {0}", value); 
} 

但是在这里我得到了

string s = ConfigurationManager.AppSettings["B"].ToString(); 

如何解决这个问题空值?请帮忙。

谢谢。

回答

0

配置文件不在dll的上下文中使用,但用于web应用程序。 即使您有与服务“B”关联的web.config添加服务中的B.dll引用,“A”也不会使其可用于在服务A上下文中运行的任何代码。服务A中的任何代码都可以读取配置只能从其自己的web.config文件中访问,并且无法访问服务B的任何配置。 解决方法是,您需要将服务B的web.config中存在的相同设置/配置添加到服务A的web.config中。所以移动<add key="B" value="b1"/>服务A的web.config,它应该工作。

+0

嗨...感谢您的回复..是否有任何方法可以将应用程序设置复制到A的web.config中?为什么我问这只是一个例子,在实际案例中'B'服务正在被几个应用程序调用。我认为这不是一个更好的方式来添加'B的应用程序设置内呼叫应用程序? – ANR

+0

不幸的是,除了应对设置之外,没有其他更好的方法可以做到。但是在现实世界中,如果您将业务逻辑开发为WCF服务,那么您会希望将其作为其他应用程序/ wcf服务中的服务使用。如果它作为WCF服务开发,那么你不应该通过添加dll引用来使用它。 –

+0

谢谢..赢了。 – ANR

0

您应该在应用程序A的配置中配置<add key="B" value="b1"/>才能使其正常工作。

0

尝试在应用程序A的web.config中放置您试图访问的应用程序设置(B)。

相关问题