.net – 为什么,当我在WCF服务中模拟时,当我尝试运行LINQ to SQL查询时,我的服务是否可以加载System.Transactions?

前端之家收集整理的这篇文章主要介绍了.net – 为什么,当我在WCF服务中模拟时,当我尝试运行LINQ to SQL查询时,我的服务是否可以加载System.Transactions?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个WCF服务,托管在IIS 7.0中,需要运行数据库查询.为了获得正确的权限,我在服务中模仿如下:

[OperationBehavior(Impersonation = ImpersonationOption.Allowed)]
public void MyOperation(int arg)

组态

<behavior name="ReceivingServiceBehavior">
    <!-- Other behaviors -->
    <serviceAuthorization impersonateCallerForAllOperations="true" />
</behavior>

当我尝试连接并运行我的查询时,我得到以下内容

Exception - System.IO.FileLoadException: Could not load file or
assembly 'System.Transactions,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089' or one of its dependencies. Either a
required impersonation level was not provided,or the provided
impersonation level is invalid. (Exception from HRESULT: 0x80070542)

File name: 'System.Transactions,PublicKeyToken=b77a5c561934e089' ---> System.Runtime.InteropServices.COMException (0x80070542): Either a required impersonation level was not provided,or the provided impersonation level is invalid. (Exception from HRESULT: 0x80070542)
   at System.Data.Linq.sqlClient.sqlConnectionManager.UseConnection(IConnectionUser user)
   at System.Data.Linq.sqlClient.sqlProvider.get_IssqlCe()
   at System.Data.Linq.sqlClient.sqlProvider.InitializeProviderMode()
   at System.Data.Linq.sqlClient.sqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
   at System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Fourth.GHS.MessageRelay.RegistrationDBStorage.FindRegistration(SystemKey key)

解决方法

如果希望将SQL查询作为模拟标识执行,则实际上可能需要启用对sql Server的委派.查看这篇文章了解更多信息:

http://msdn.microsoft.com/en-us/library/ms730088.aspx

猜你在找的MsSQL相关文章