2

MySQL スキーマから作成された EntityFramework モデルに基づいて WFC Dataservice として作成された Web サービスがあります。Visual Studio で Web サービスを実行すると、Web サービスが作成され、データを取得できます。テストをローカルで実行していますが、Web サービスはリモート データベース (MySQL-net/connector 6.6.4.0) に接続されています。そして、それはチャンピオンのように走っています。

私の問題は、データ サービスを共有ホスト プロバイダーに公開するときに始まります。すると、次のエラーメッセージが表示されます。

    The server encountered an error processing the request. The exception message is 'Exception has been thrown by the target of an invocation.'. See server logs for more details. The exception stack trace is:

at System.RuntimeFieldHandle.GetValue(RtFieldInfo field, Object instance, 
RuntimeType fieldType, RuntimeType declaringType, Boolean& domainInitialized)
at System.Reflection.RtFieldInfo.InternalGetValue(Object obj, Boolean     doVisibilityCheck, Boolean doCheckConsistency)
at System.Reflection.RtFieldInfo.GetValue(Object obj)
at System.Data.Common.DbProviderFactories.GetFactory(DataRow providerRow)
at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
at System.Data.EntityClient.EntityConnection.GetFactory(String providerString)
at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
at System.Data.EntityClient.EntityConnection..ctor(String connectionString)
at system.Data.Entity.Internal.LazyInternalConnection.InitializeFromConnectionStringSetting(ConnectionStringSettings appConfigConnection)
at system.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name, AppConfig config)
at System.Data.Entity.Internal.LazyInternalConnection.Initialize() 
at System.Data.Entity.Internal.LazyInternalConnection.CreateObjectContextFromConnectionModel() 
at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() 
at System.Data.Entity.Internal.InternalContext.ForceOSpaceLoadingForKnownEntityTypes()
at System.Data.Entity.DbContext.System.Data.Entity.Infrastructure.IObjectContextAdapter.get_ObjectContext() at lambda_method(Closure , Object ) 
at System.Data.Services.Providers.DbContextHelper.GetObjectContext(Object o) 
at System.Data.Services.Caching.MetadataCache`1.TryLookup(Type serviceType, Object dataContextInstance) 
at System.Data.Services.Providers.BaseServiceProvider.LoadMetadata() 
at System.Data.Services.DataService`1.CreateMetadataAndQueryProviders(IDataServiceMetadataProvider& metadataProviderInstance, IDataServiceQueryProvider& queryProviderInstance, BaseServiceProvider& builtInProvider, Object& dataSourceInstance) 
at System.Data.Services.DataService`1.CreateProvider() 
at System.Data.Services.DataService`1.HandleRequest() 
at System.Data.Services.DataService`1.ProcessRequestForMessage(Stream messageBody) 
at SyncInvokeProcessRequestForMessage(Object , Object[] , Object[] ) 
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) 
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) 
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) 
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc) 
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) 
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) 
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc) 
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc) 
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) 
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc) 
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

私の Web.Config ファイルは次のようになります。

    <?xml version="1.0" encoding="utf-8"?>
    <!--
      For more information on how to configure your ASP.NET application, please visit
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
    <configuration>
      <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </configSections>
       <system.web>
        <compilation debug="true" targetFramework="4.0">
          <assemblies>
            <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
          </assemblies>
        </compilation>
        <customErrors mode="Off"></customErrors>
      </system.web>
      <connectionStrings>
        <add name="UgyvediAdatbazisEntities" connectionString="metadata=res://*/ugyvediDbModell.csdl|res://*/ugyvediDbModell.ssdl|res://*/ugyvediDbModell.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=UgyvediAdatbazis.db.10115243.hostedresource.com;user id=UgyvediAdatbazis;password=*******;database=UgyvediAdatbazis&quot;" providerName="System.Data.EntityClient" />
      </connectionStrings>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="v11.0" />
          </parameters>
        </defaultConnectionFactory>
      </entityFramework>
      <system.serviceModel>
        <diagnostics>
          <messageLogging logMalformedMessages="true"
                          logMessagesAtServiceLevel="true"
                          logMessagesAtTransportLevel="true"
                          logEntireMessage="true"
                          maxMessagesToLog="10000"/>
        </diagnostics>
        <behaviors>
          <serviceBehaviors>
            <behavior name="Hibajelzes" >
              <serviceDebug includeExceptionDetailInFaults="true" />
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <bindings>
          <webHttpBinding>
            <binding name="NoAuth">
              <security mode="None">
                <!--<transport clientCredentialType="None"></transport>-->
              </security>               
            </binding>
          </webHttpBinding>
          <basicHttpBinding>
            <binding name="NoAuth">
              <security mode="None"></security>
            </binding>
            <binding name="BasicAuth">
              <security mode="Transport">
                <transport clientCredentialType="Basic" />
              </security>
            </binding>
          </basicHttpBinding>
        </bindings>
        <services>
          <service name="UgyvediWebApp.UgyvediDataService" behaviorConfiguration="Hibajelzes">
            <endpoint address=""
                      binding="webHttpBinding"
                      bindingConfiguration="NoAuth"
                      contract="System.Data.Services.IRequestHandler">          
            </endpoint>
          </service>
        </services>
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">

          <baseAddressPrefixFilters>
            <!--<add prefix="http://www.omegabridge.com/ugyvediservice/"/>-->
          </baseAddressPrefixFilters>
        </serviceHostingEnvironment>
      </system.serviceModel>

      <system.data>
        <DbProviderFactories>
          <add
                name="MySQL Data Provider"
                invariant="MySql.Data.MySqlClient"
                description=".Net Framework Data Provider for MySQL"
                type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, 
                      Version=6.6.4.0, Culture=neutral, 
                      PublicKeyToken=c5687fc88969c44d"
            />
        </DbProviderFactories>

      </system.data>

      <system.webServer>
        <httpErrors errorMode="Detailed"/>
        <asp scriptErrorSentToBrowser="true"/>
      </system.webServer>

    </configuration>

私の問題はMySQLコネクタにあると思いますが、正確にはわかりません。MySQL.Data、MySQL.Data.Entity、および MySQL.Web が参照され、Copy Local に設定されます。埋め込みデータ サービス Diagnostics を使用しようとしましたが、wcf トレース ファイルは、以前に示したスタック トレースのみで返されました。

お願いします。この問題を解決する方法を知っている若者がいる場合は、私と共有してください。

4

0 に答える 0