【发布时间】:2011-10-20 22:01:14
【问题描述】:
现在已经丢失了几个小时,我只是不明白。
情况: - 将 ASP.net 应用程序迁移到 Azure - 重要:这是一个包含多个网站的 webrole,所有网站都编译在一个文件夹“azure.builds”中,所以我的网站绑定就像 物理目录=“..\azure.builds\www.mywebsite.com” 物理目录=“..\azure.builds\cb.mywebsite.com” 等等
我有一个在我的开发机器上运行良好的 cmd 脚本,它在 IIS 上设置了在 exe 文件上执行的权限(它必须由 html 表单调用)。
这是我的本地代码 startup.cmd,它适用于我的本地 IIS:
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+"[name='MY_GCI', path='.exe',verb='' ,modules='CgiModule', scriptProcessor='c:\websites\myproject\azure.builds\cb.mywebsite.com\cgi-bin\mymodule.exe',resourceType='Either']"
在我的 html 表单中,该文件是通过操作“http://cb.mywebsite.com/cgi-bin/mymodule.exe”调用的,并猜测它的工作原理。
但在我迁移到 Azure 时却没有,我无法为这个特定文件设置权限。问题是我无法计算出 EXE 文件的完整路径,如上例所示。
我试过这个(%ROLEROOT%):
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+"[name='MY_GCI', path='.exe',verb='' ,modules='CgiModule', scriptProcessor='%ROLEROOT%\azure.build\cb.mywebsite.com\cgi-bin\mymodule.exe',resourceType='Either']"
不起作用。 我研究了几个涉及类似 CGI 设置的示例(例如运行 PHP),但困难在于 EXE 模块必须在 http://cb.mywebsite.com/cgi-bin/mymodule.exe 上公开,这甚至不是我的 azure webrole 上的主根网站,所以这并不完全相同。
对不起,如果不是很清楚理解,简而言之:如何在启动cmd文件中的webrole中找到特定站点节点中特定文件的完整本地路径?
【问题讨论】: