4

Windows AzureのHttp.sys レジストリ設定の UrlSegmentMaxLength を上げる必要があります。誰もそれを行う方法を知っていますか? (または同等の動作につながる何かをする)

4

2 に答える 2

8

1) Web プロジェクトに .cmd ファイルを追加します。Build Action を「None」に設定し、Copy to Output Directory を「Copy always」に設定します。

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 ロールをデプロイすると、レジストリの変更が行われているはずです。

于 2011-03-02T06:22:41.180 に答える
3

これらのレジストリ キーは HKLM にあるようです。管理者アクセスなしでそれらを変更できるとは思えません (現在の Windows Azure にはありません)。

それをオーバーライドする別の方法 (web.config など) がない限り、管理者モードになるまで運が悪いと思います。

于 2010-07-01T18:37:35.967 に答える