更改Windows Azure上的HTTP.SYS注册表设置?
题
我需要提高urlSegmentMaxLength http.sys注册表设置 在Windows Azure上。有人知道该怎么做吗? (或做导致等效行为的事情)
解决方案
看起来那些Reg键在HKLM中。我不相信您可以在没有管理员访问权限的情况下更改那些(您今天在Windows Azure中没有)。
除非有另一种方法可以覆盖它(例如在web.config中),否则我认为您不幸直到管理员模式出现。
其他提示
1)在您的Web项目中添加.CMD文件。将构建操作设置为“无”,然后将输出目录复制到“始终复制”。
2)更新.cmd文件。这是我使用的示例脚本,检查是否已设置了注册表更改,以及它是否尚未修改注册表然后重新启动服务器(需要重新启动服务器 - 简单地重新启动HTTP服务会导致Azure部署进入一个永不结束循环)。
@echo off
setlocal
set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters
reg query "%regpath%" /v "AllowRestrictedChars"
if errorlevel 1 (
reg add %regpath% /v AllowRestrictedChars /t REG_DWORD /d 00000001
reg add %regpath% /v UrlSegmentMaxCount /t REG_DWORD /d 00000000
reg add %regpath% /v PercentUAllowed /t REG_DWORD /d 00000001
reg add %regpath% /v UrlSegmentMaxLength /t REG_DWORD /d 00000000
shutdown /r /t 0
)
3)在您的Azure角色的servicedefinition.csdef中,添加.cmd作为启动任务:
<WebRole name="WebRoleName">
...
<Startup>
<Task commandLine="httpSys.cmd" executionContext="elevated" />
</Startup>
</WebRole>
4)部署您的Azure角色,应该进行注册表更改。
不隶属于 StackOverflow