无法加载 DLL 'Microsoft.WITDataSTore32.dll'

Unable to load DLL 'Microsoft.WITDataSTore32.dll'

我看到有些人和我有同样的问题,但我还没有找到解决问题的方法。

这适用于我的开发机器,但不适用于生产环境:

WorkItemStore workItemStore = teamProjectCollection.GetService<WorkItemStore>();

这是我的错误信息:

Unable to load DLL 'Microsoft.WITDataStore32.dll': Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

我已经将文件复制到我的 bin 文件夹中,但它仍然没有 work.Could 这与 IIS 进程用户没有访问该文件的权限有关吗?从哪里开始?

有人遇到过同样的情况吗?

此致。

如果问题与 IIS-process-user 无法访问文件有关,则缩小范围。

您可以检查dll 的权限。确保 Network Serviceapp pool identity 都具有 read/write/execute 权限。添加 IIS_IUSRS、IIS-process-user 和 r/w/x。

也请尝试运行 cmd tasklist /m dll_name.dll 检查另一个进程是否锁定了文件并且没有 share-read 访问权限。

另一个方向是仔细检查添加对 Microsoft.WITDataStore 的引用是否成功。如果您使用 Nuget 包安装 dll,请确保使用 official NuGet packages。一些类似的问题供您参考:

  • TFS 2015 SDK Missing Microsoft.WITDataStore64.dll

您应该使用 Nuget 包进行 TFS 集成。如果您添加 TFS 扩展客户端,它将以必要的方式设置文件。

https://www.nuget.org/packages/Microsoft.TeamFoundationServer.ExtendedClient

它会向您的项目添加两个您需要的附加文件。