0

我正在为 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(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast) 在 System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[ ] inputBuffer, Int32 inputOffset, Int32 inputCount) at System.Security.Cryptography.CryptoStream.FlushFinalBlock() 在 System.Security.Cryptography.CryptoStream.Dispose(Boolean disposing) 在 System.IO.Stream.Close() 在 System.IO。 Stream.Dispose() at GX.Framework.Utils.Encryption.Decrypt(String encryptedText) at ServiceWCF.MainService..ctor() at CreateServiceWCF.MainService() at System.ServiceModel.Dispatcher.InstanceProvider.GetInstance(InstanceContext instanceContext, Message message ) 在 System.ServiceModel.Dispatcher.InstanceBehavior。GetInstance(InstanceContext instanceContext, Message request) at System.ServiceModel.InstanceContext.GetServiceInstance(Message message) at System.ServiceModel.Dispatcher.InstanceBehavior.EnsureServiceInstance(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc) 在 System .ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2 (MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher。System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) 处的 ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)

4

2 回答 2

0

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

于 2013-01-24T12:57:56.103 回答
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();
    }
于 2013-01-24T08:06:00.590 回答