2012-01-13 2 views
0

私は入力を感謝しています。WCF Ria操作が必要な署名に準拠していません

私はこのように定義されたDomainServiceを持っており、すべてが正常に動作します(開発マシンとサーバー上)。

Public Function GetPrices() As IQueryable(Of Price) 
Public Sub InsertPrice(ByVal Price As Price) 
Public Sub UpdatePrice(ByVal currentPrice As Price) 

しかし、私は次のメソッドを追加するとき、私は

<Invoke(HasSideEffects:=True)> 
Public Sub SetSitePrices(ByVal SiteIds As IEnumerable(Of Short), p As Price) 

Operation named 'SetSitePrices' does not conform to the required signature. Parameter types must be an entity type or one of the predefined serializable types. 

[InvalidOperationException: Operation named 'SetSitePrices' does not conform to the required signature. Parameter types must be an entity type or one of the predefined serializable types.] 
    System.ServiceModel.DomainServices.Server.DomainServiceDescription.ValidateMethodSignature(DomainOperationEntry method) +221051 
    System.ServiceModel.DomainServices.Server.DomainServiceDescription.AddInvokeOperation(DomainOperationEntry method) +21 
    System.ServiceModel.DomainServices.Server.DomainServiceDescription.Initialize() +312 
    System.ServiceModel.DomainServices.Server.DomainServiceDescription.CreateDescription(Type domainServiceType) +216 
    System.ServiceModel.DomainServices.Server.<>c__DisplayClass8.<GetDescription>b__7(Type type) +9 
    System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) +72 
    System.ServiceModel.DomainServices.Server.DomainServiceDescription.GetDescription(Type domainServiceType) +196 
    System.ServiceModel.DomainServices.Hosting.DomainServiceHost..ctor(Type domainServiceType, Uri[] baseAddresses) +250 
    System.ServiceModel.DomainServices.Hosting.DomainServiceHostFactory.CreateServiceHost(Type serviceType, Uri[] baseAddresses) +29 
    System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) +422 
    System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +1461 
    System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +44 
    System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +651 

[ServiceActivationException: The service '/Services/Cosmo-Web-SamDomainService.svc' cannot be activated due to an exception during compilation. The exception message is: Operation named 'SetSitePrices' does not conform to the required signature. Parameter types must be an entity type or one of the predefined serializable types..] 
    System.Runtime.AsyncResult.End(IAsyncResult result) +688590 
    System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +190 
    System.ServiceModel.Activation.ServiceHttpHandler.EndProcessRequest(IAsyncResult result) +6 
    System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +96 

(開発マシン上で発生していない)サーバー上で次のエラーを取得するには、サーバーが異なるWCFを持っていることは可能ですDLL?

+0

サーバGACにインストールされているものを確認しましたか? –

答えて

1

原因は、GACに古いバージョンのRIAサービスがインストールされているためです。最新のRIA Services Service Packでは同じバージョン番号が使用されています。これにより、GACのバージョンがbinディレクトリの新しいバージョンに優先して読み込まれます。

解決策は、サーバーからRIAサービスをアンインストールすることで、ローカル\ BINバージョンを読み込むことができます。

関連する問題