2013-11-12 2 views
0

Это мой код web.config.Ошибка при обработке этого запроса wcf Служба данных

<?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> 
    <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> 
    </system.web> 
    <system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
    </system.serviceModel> 
    <connectionStrings> 
    <add name="SupplierProjectEntities" connectionString="metadata=res://*/SupplierDatabase.csdl|res://*/SupplierDatabase.ssdl|res://*/SupplierDatabase.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=127.0.0.1;User Id=root;password=sa_12345;database=supplier&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
</configuration> 

Это мой код обслуживания данных WCF.

using System; 
using System.Collections.Generic; 
using System.Data.Services; 
using System.Data.Services.Common; 
using System.Linq; 
using System.ServiceModel.Web; 
using System.Web; 

namespace SupplierService 
{ 
    public class SupplierProjectService : DataService<SupplierProjectEntities > 
    { 
     // 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.All); 
      config.SetServiceOperationAccessRule("*", ServiceOperationRights.All); 
      config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; 
     } 
    } 
} 

Описание ошибки. Когда я запускаю эту службу данных wcf, я получаю ошибку, как показано ниже.

<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> 
<code/> 
<message xml:lang="en-US">An error occurred while processing this request.</message> 
<innererror> 
<message> 
Object reference not set to an instance of an object. 
</message> 
<type>System.NullReferenceException</type> 
<stacktrace> 
at MySql.Data.MySqlClient.MySqlClientFactory.get_MySqlDbProviderServicesInstance() 
at MySql.Data.MySqlClient.MySqlClientFactory.System.IServiceProvider.GetService(Type serviceType) 
at System.Data.Common.DbProviderServices.GetProviderServices(DbProviderFactory factory) 
at System.Data.Metadata.Edm.StoreItemCollection.Loader.InitializeProviderManifest(Action`3 addError) 
at System.Data.Metadata.Edm.StoreItemCollection.Loader.OnProviderManifestTokenNotification(String token, Action`3 addError) 
at System.Data.EntityModel.SchemaObjectModel.Schema.HandleProviderManifestTokenAttribute(XmlReader reader) 
at System.Data.EntityModel.SchemaObjectModel.Schema.HandleAttribute(XmlReader reader) 
at System.Data.EntityModel.SchemaObjectModel.SchemaElement.ParseAttribute(XmlReader reader) 
at System.Data.EntityModel.SchemaObjectModel.SchemaElement.Parse(XmlReader reader) 
at System.Data.EntityModel.SchemaObjectModel.Schema.HandleTopLevelSchemaElement(XmlReader reader) 
at System.Data.EntityModel.SchemaObjectModel.Schema.InternalParse(XmlReader sourceReader, String sourceLocation) 
at System.Data.EntityModel.SchemaObjectModel.Schema.Parse(XmlReader sourceReader, String sourceLocation) 
at System.Data.EntityModel.SchemaObjectModel.SchemaManager.ParseAndValidate(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths, SchemaDataModelOption dataModel, AttributeValueNotification providerNotification, AttributeValueNotification providerManifestTokenNotification, ProviderManifestNeeded providerManifestNeeded, IList`1& schemaCollection) 
at System.Data.Metadata.Edm.StoreItemCollection.Loader.LoadItems(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths) 
at System.Data.Metadata.Edm.StoreItemCollection.Init(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths, Boolean throwOnError, DbProviderManifest& providerManifest, DbProviderFactory& providerFactory, String& providerManifestToken, Memoizer`2& cachedCTypeFunction) 
at System.Data.Metadata.Edm.StoreItemCollection..ctor(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths) 
at System.Data.Metadata.Edm.MetadataCache.StoreMetadataEntry.LoadStoreCollection(EdmItemCollection edmItemCollection, MetadataArtifactLoader loader) 
at System.Data.Metadata.Edm.MetadataCache.StoreItemCollectionLoader.LoadItemCollection(StoreMetadataEntry entry) 
at System.Data.Metadata.Edm.MetadataCache.LoadItemCollection[T](IItemCollectionLoader`1 itemCollectionLoader, T entry) 
at System.Data.Metadata.Edm.MetadataCache.GetOrCreateStoreAndMappingItemCollections(String cacheKey, MetadataArtifactLoader loader, EdmItemCollection edmItemCollection, Object& entryToken) 
at System.Data.EntityClient.EntityConnection.LoadStoreItemCollections(MetadataWorkspace workspace, DbConnection storeConnection, DbProviderFactory factory, DbConnectionOptions connectionOptions, EdmItemCollection edmItemCollection, MetadataArtifactLoader artifactLoader) 
at System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(Boolean initializeAllCollections) 
at System.Data.EntityClient.EntityConnection.InitializeMetadata(DbConnection newConnection, DbConnection originalConnection, Boolean closeOriginalConnectionOnFailure) 
at System.Data.EntityClient.EntityConnection.Open() 
at System.Data.Objects.ObjectContext.EnsureConnection() 
at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) 
at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() 
at System.Data.Objects.ObjectQuery`1.GetEnumeratorInternal() 
at System.Data.Objects.ObjectQuery.System.Collections.IEnumerable.GetEnumerator() 
at System.Data.Services.WebUtil.GetRequestEnumerator(IEnumerable enumerable) 
at System.Data.Services.DataService`1.SerializeResponseBody(RequestDescription description, IDataService dataService) 
at System.Data.Services.DataService`1.HandleNonBatchRequest(RequestDescription description) 
at System.Data.Services.DataService`1.HandleRequest() 
</stacktrace> 
</innererror> 
</error> 

Объяснение ошибки. Эта база данных, которую я сначала сделал в sql server.and, когда я сделал службу данных wcf для SQL-сервера, тогда она работала правильно. И эта база данных была такой же, как и база данных mysql. , но теперь сделали службу данных WCF для базы данных mysql, после чего я получаю эту ошибку. , как показано выше.so, пожалуйста, помогите мне в этой ошибке, чтобы решить эту ошибку.

Я задаю этот вопрос, чтобы получить данные из базы данных MySQL это версия 6.7.4.0

ответ

0

я мог бы получить ответ на мой вопрос.

Ответ в том, что я только забыл добавить Mysql.data.dll и mysql.data.entity.dll в ссылки папки. поэтому после добавления этой DLL в справочную папку я мог решить выше ошибки , чтобы вы также могли попробовать. Надеюсь, это будет полезно.

0

Это будет отображаться моноширинным шрифтом. Первые четыре пробела будут удалены, но все остальные пробелы будут сохранены.

Markdown and HTML are turned off in code blocks: 
<i>This is not italic</i>, and [this is not a link](http://example.com) 

Чтобы создать не блок, но диапазон встроенного кода, используйте кавычку:

$ персонаж просто ярлык для window.jQuery. Если вы хотите иметь отформатированный блок внутри списка, отступ восемь пробелов:

  1. Это обычный текст.
  2. Так это, но теперь следует блок кода:

    Skip a line and indent eight spaces. 
    That's four spaces for the list 
    and four to trigger the code block.`enter code here`123" 
    
Смежные вопросы