【发布时间】:2019-05-10 07:09:27
【问题描述】:
我在这方面没有找到太多东西,在花了一天的大部分时间之后......我正在寻求帮助......
我得到的例外是:
无法将“System.__ComObject”类型的 COM 对象转换为接口 键入“IFabricSecretStoreClient”。此操作失败,因为 对具有 IID 的接口的 COM 组件上的 QueryInterface 调用 '{38C4C723-3815-49D8-BDF2-68BFB536B8C9}' 由于以下原因而失败 错误:不支持此类接口(HRESULT 异常:0x80004002 (E_NOINTERFACE))。
我可以使用以下代码实例化有状态服务的代理:
var servicekey = new ServicePartitionKey(0);
var queryserviceUri = new Uri("fabric:/XXXX/xxxxxxxxxx");
var proxyHandle = ServiceProxy.Create<IAnInterfaceName>(queryserviceUri, servicekey, TargetReplicaSelector.PrimaryReplica);
然后我使用代理:
var result = await proxyHandle.OperationOnServiceContract(dataPackage);
此时我得到错误...
堆栈跟踪...
在 System.Fabric.FabricClient.CreateNativeClient(IEnumerable
1 connectionStringsLocal) at System.Fabric.Interop.Utility.<>c__DisplayClass27_0.<WrapNativeSyncInvoke>b__0() at System.Fabric.Interop.Utility.WrapNativeSyncInvoke[TResult](Func1 func, 字符串 functionTag, 字符串 functionArgs) 在 System.Fabric.Interop.Utility.WrapNativeSyncInvoke(动作动作, 字符串函数标签,字符串函数参数)在 System.Fabric.Interop.Utility.RunInMTA(动作动作)在 System.Fabric.FabricClient.InitializeFabricClient(SecurityCredentials credentialArg,FabricClientSettings 新设置,字符串 [] hostEndpointsArg) 在 Microsoft.ServiceFabric.Services.Client.ServicePartitionResolver.c.b__21_0() 在 Microsoft.ServiceFabric.Services.Client.ServicePartitionResolver.GetClient() 在 Microsoft.ServiceFabric.Services.Client.ServicePartitionResolver.ResolveHelperAsync(Func5 resolveFunc, ResolvedServicePartition previousRsp, TimeSpan resolveTimeout, TimeSpan maxRetryInterval, CancellationToken cancellationToken, Uri serviceUri) at Microsoft.ServiceFabric.Services.Communication.Client.CommunicationClientFactoryBase1.GetClientAsync(Uri serviceUri、ServicePartitionKey partitionKey、TargetReplicaSelector targetReplicaSelector、字符串 listenerName、OperationRetrySettings retrySettings, CancellationToken cancelToken) 在 Microsoft.ServiceFabric.Services.Remoting.V2.FabricTransport.Client.FabricTransportServiceRemotingClientFactory.GetClientAsync(Uri serviceUri、ServicePartitionKey partitionKey、TargetReplicaSelector targetReplicaSelector、字符串 listenerName、OperationRetrySettings retrySettings, CancellationToken cancelToken) 在 Microsoft.ServiceFabric.Services.Communication.Client.ServicePartitionClient1.GetCommunicationClientAsync(CancellationToken cancellationToken) at Microsoft.ServiceFabric.Services.Communication.Client.ServicePartitionClient1.InvokeWithRetryAsync[TResult](Func2 func, CancellationToken cancellationToken, Type[] doNotRetryExceptionTypes) at Microsoft.ServiceFabric.Services.Remoting.V2.Client.ServiceRemotingPartitionClient.InvokeAsync(IServiceRemotingRequestMessage remotingRequestMessage, String methodName, CancellationToken cancellationToken) at Microsoft.ServiceFabric.Services.Remoting.Builder.ProxyBase.InvokeAsyncV2(Int32 interfaceId, Int32 methodId, String methodName, IServiceRemotingRequestMessageBody requestMsgBodyValue, CancellationToken cancellationToken) at Microsoft.ServiceFabric.Services.Remoting.Builder.ProxyBase.ContinueWithResultV2[TRetval](Int32 interfaceId, Int32 methodId, Task1 任务)在 XXXXWeb.Controllers.XXXController.OperationOnServiceContract(XXXRequest xxxRequest) 在 C:\Users\codputer\Source\Repos\xxxxxx\xxxx.Web\Controllers\XXXController.cs:line 44
哦,我正在使用它作为听众:
protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners()
{
return this.CreateServiceRemotingReplicaListeners();
}
【问题讨论】:
-
您能否在问题中指定:SDK 和运行时的版本,这些服务在哪里使用? Client在哪里托管,客户端是什么类型,Service在哪里托管!
-
这似乎是同样的错误信息:github.com/Azure/service-fabric-issues/issues/476 解决办法是升级
-
是的,很有可能,只是想在回答之前确认版本,最近很多人遇到这个问题#1374@Azure/service-fabric-issues和#262@Microsoft/service-fabric
标签: azure-service-fabric visual-studio-2019