我拥有的是一个 Asp.Net MVC 项目,它引用了一个 c++/cli 程序集,而该程序集又引用了一些 native c++ dll。最终将其发布到 Web 角色中的 Azure Web 服务。
This建议在启动任务中将 native dll 复制到“%windir%\system32\inetsrv”文件夹,以便 Web 角色在启动时可以找到它们。这在云上按预期工作。
但是,在本地调试时,我希望 IIS Express 可以使用这些 dll。这些是 64 位 dll,因此我必须运行 IIS Express 的 64 位版本。我正在尝试找出 IIS Express 64 位的 %windir%\system32\inetsrv 的等效值。
最佳答案
事实证明,问题出在 %windir%。
在 64 位计算机上,运行 32 位进程时会重定向到 SysWoW64。
由于 VS 是 32 位,因此启动任务从 VS 内作为 32 位进程运行,并且文件被复制到错误的目录。
使用%windir%\Sysnative当从 VS 和 %windir% 工作时,否则可以解决完整 IIS 的问题。
对于 IIS Express,要复制到的正确目录是“C:\Program Files\IIS Express”
关于windows - 如何在 IIS Express 中引用 native 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24246547/