Исключение System.IO.FileNotFoundException при подключении к MS CRM, но dll в расположении сообщения ex существует - PullRequest
0 голосов
/ 04 марта 2020

Когда я пытаюсь подключиться к базе данных MS CRM с помощью OrganizationService RetrieveMultiple во время выполнения, мой сайт отказывает за исключением:

System.IO.FileNotFoundException: S'C:\Users\...\AppData\Local\Temp\Temporary ASP.NET SFiles\vs\96f9bce8\47970a72\assembly\dl3\c0a0fff4\8624e78b_20f2d501\Microsoft.Xrm.Sdk.dll'

Sat System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName) Sat Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.GetXrmSdkAssemblyFileVersion() Sat Microsoft.Xrm.Sdk.Client.OrganizationServiceContextInitializer.Initialize() Sat Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.RetrieveMultipleCore(QueryBase query) Sat Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.RetrieveMultiple(QueryBase query) Sat Microsoft.Xrm.Client.Services.OrganizationService.<>c__DisplayClass22.<RetrieveMultiple>b__21(IOrganizationService s) Sat Microsoft.Xrm.Client.Services.OrganizationService.InnerOrganizationService.UsingService[TResult](Func2 action) Sat Microsoft.Xrm.Client.Services.OrganizationService.RetrieveMultiple(QueryBase query) Sat KB_BusinessPortal.DAL.CRMContext.RetrieveMoreThan5000Rows[T](OrganizationService service, QueryExpression query) Sat KB_BusinessPortal.DAL.CRMContext.GetAccounts(Nullable1 keyAccountManagerId) Sat KB_BusinessPortal.Controllers.AccountsController.Index() Sat lambda_method(Closure , ControllerBase , Object[] ) Sat System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) Sat System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary2 parameters) Sat System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 parameters) Sat System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) Sat System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult2.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase1.End() Sat System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) Sat System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() Sat System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()

Но файл существует в этом месте:

enter image description here

Я также уже получил эту DLL в моем проекте Visual Studio, так что я понятия не имею, Почему он пытается использовать временные файлы:

enter image description here

Почему идеи, почему это будет происходить?

Мое лучшее предположение - возможно, временный файл dll - это неправильная версия, но я понятия не имею, что это должно быть или как это изменить. Также я предполагаю, что временные файлы приходят из локальной установки sdk или crm на моем компьютере, может ли это потребоваться обновление или установлена ​​новая версия?

РЕДАКТИРОВАТЬ: Я обнаружил, что удаление

<identity impersonate="true" />

из web.config останавливает проблему ... почему это может повлиять на dll ??

К сожалению, мне действительно нужна эта строка, чтобы я мог быть надлежащим образом аутентифицирован для моей системы CRM, так что если кто-то может помочь с оригинальной проблемой, которая будет удивительной

...