-1

我写了一个非常简单的 WCF 数据服务。但是当我在 IIS7.5 上部署时,我发现这不起作用。它只能在 IIS Express 上运行。

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]   
public class WcfDataService : DataService<ConfigurationDataEntities>
{
    // This method is called only once to initialize service-wide policies.
    public static void InitializeService(DataServiceConfiguration config)
    {
        // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
        // Examples:
        config.UseVerboseErrors = true;
         config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
        // config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);
        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
    }
}

这是网络配置文件

<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework5" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="ConfigurationDataEntities" connectionString="metadata=res://*/ConfigurationDataModel.csdl|res://*/ConfigurationDataModel.ssdl|res://*/ConfigurationDataModel.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;data source=|DataDirectory|\ConfigurationData.sdf;password=123;persist security info=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <system.web>
    <compilation debug="true" targetFramework="4.5">
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
    </compilation>
    <httpRuntime targetFramework="4.5" />
  </system.web>

  <entityFramework5>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework5>
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
  </system.serviceModel>
</configuration>

这是错误消息:服务器在处理请求时遇到错误。有关更多详细信息,请参阅服务器日志。

在 System.Data.Entity.DbContext..ctor(String nameOrConnectionString) 在 WcfDataServiceTest.ConfigurationDataEntities..ctor() 位置 c:\Projects\WcfDataServiceTest\WcfDataServiceTest\ConfigurationDataModel.Context.cs: 行号 18 invoke_constructor() 在 System. Data.Services.DataService 1.CreateMetadataAndQueryProviders 1.CreateDataSourceInstance() 在 System.Data.Services.DataService(IDataServiceMetadataProvider& metadataProviderInstance, IDataServiceQueryProvider& queryProviderInstance, BaseServiceProvider& builtInProvider, Object& dataSourceInstance) 在 System.Data.Services.DataService1.CreateProvider() 在 System.Data.Services.DataService1.HandleRequest() 在 System.Data.Services.DataService`1.ProcessRequestForMessage(Stream messageBody) 在 SyncInvokeProcessRequestForMessage(Object , Object[] , Object[] ) 在 System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[ ] 输入,对象 []& 输出)在 System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc ) 在 System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

4

1 回答 1

1

任何人都可以帮助我吗?

WCF 可以帮助您:

有关更多详细信息,请参阅服务器日志。

配置跟踪并查看异常发生的位置。由于它发生在DbContext构造函数中,我假设有一些与数据库访问有关的东西。检查运行应用程序池的帐户并验证此帐户可以访问数据库。

于 2013-05-14T09:10:43.517 回答