System.Configuration.dll中的ConfigurationManager异常

时间:2013-01-24 07:33:24

标签: c# wcf config configurationmanager

我正在为silverlight应用程序编写WCF服务。在MainService中,我想从配置文件中读取信息。所以我想使用ConfigurationManager。我将System.Configuration.dll添加到项目编译并发布。然后在调用WCF服务收到错误后,请参阅下面的内容。 如果我不使用ConfigurationManager(没有引用DLL)它正在工作。 以下是在配置中调用设置和存储设置的代码的一部分。

var connectionManagerDatabaseServers = ConfigurationManager.GetSection("ConnectionManagerDatabaseServers") as NameValueCollection;
string config = connectionManagerDatabaseServers["ConnectionString"];

<configSections>
    <section name="ConnectionManagerDatabaseServers" type="System.Configuration.NameValueSectionHandler" />
</configSections>

<ConnectionManagerDatabaseServers>
    <add key="DatabaseType" value="1" />
    <add key="ConnectionString" value="VALUE" />
</ConnectionManagerDatabaseServers>
  

服务器在处理请求时遇到错误。异常消息是“填充无效且无法删除”。请参阅服务器日志以获取更多详异常堆栈跟踪是:

     

在System.Security.Cryptography.RijndaelManagedTransform.DecryptData(字节[] INPUTBUFFER,的Int32 inputOffset,的Int32 inputCount,字节[]&安培; OutputBuffer中,的Int32 outputOffset,PaddingMode paddingMode,布尔式Flash)在System.Security.Cryptography.RijndaelManagedTransform。 TransformFinalBlock(字节[] INPUTBUFFER,的Int32 inputOffset,的Int32 inputCount)在System.Security.Cryptography.CryptoStream.FlushFinalBlock()在System.Security.Cryptography.CryptoStream.Dispose(布尔处置)在System.IO.Stream.Close()在System.IO.Stream.Dispose()在GX.Framework.Utils.Encryption.Decrypt(字符串encryptedText)在ServiceWCF.MainService..ctor()在CreateServiceWCF.MainService()在System.ServiceModel.Dispatcher.InstanceProvider.GetInstance(的InstanceContext的InstanceContext,消息消息)在System.ServiceModel.Dispatcher.InstanceBehavior.GetInstance(的InstanceContext的InstanceContext,消息请求)在System.ServiceModel.InstanceContext.GetServiceInstance(消息信息)中的System.ServiceModel.Dis patcher.InstanceBehavior.EnsureServiceInstance(MessageRpc&安培; rpc)位于System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc&amp; rpc)的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&amp; rpc),位于System的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&amp; rpc)。 ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&安培; RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&安培; RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&安培; RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime System.ServiceModel.Dispatcher.MessageRpc.Process中的.ProcessMessage1(MessageRpc&amp; rpc)(Boolean isOperationContextSet)

2 个答案:

答案 0 :(得分:0)

Musketyr,配置文件必须命名为Web.config

    <configuration>
      <appSettings>
        <add key="DatabaseType" value="1" />
        <add key="ConnectionString" value="VALUE" />
      </appSettings>
      ...


    try this
    [WebMethod]
    public string GetString()
    {
      return ConfigurationManager.AppSettings["ConnectionString"].ToString();
    }

答案 1 :(得分:0)

我解决了异常! 问题在于服务的构造。在构造函数中,我在一个方法中出错了。所以现在它的工作。 很抱歉发布了这个错误。