web-dev-qa-db-ja.com

IIS使用されていないときに使用されているポートについて文句を言う

アプリケーションを段階的に廃止する前に第三者が安全にアーカイブできるように、アプリケーションを復活させる必要があります。

サーバー全体を危険にさらすことなくこれを行うには、接続する前にユーザーに認証を強制する必要があります。つまり、TLSが必要です。

残念ながら、そのサーバーの443ポート(xxx.xxx.xxx.120)は別のアプリケーション(独自のHTTPサーバーを使用するWebメールシステム)によって使用されているため、サーバー(xxx.xxx.xxx)に新しいパブリックIPを追加しました.120)とIISにこの新しいIPのポート443のバインディングを追加:

IIS bindings for the web site

また、他のアプリが0.0.0.0:443で結合されていないことを確認しましたが、特定のIPアドレスを使用しています。

最後に、私はnetstat -ano | find ":443"を実行してこれを取得しました:

TCP    xxx.xxx.xxx.120:443     0.0.0.0:0              LISTENING       3016
TCP    xxx.xxx.xxx.120:443     0.0.0.0:0              LISTENING       3016

xxx.xxx.xxx.120は初期サーバーIPアドレスであり、新しいアドレスはxxx.xxx.xxx.122です。

念のため、netstat -aon | Find "xxx.xxx.xxx.122:443"(新しいIP)も実行しましたが、予想どおり何も返されませんでした。

残念ながら、Webアプリケーションを起動しようとすると、次のエラーメッセージが表示されます。

Error message: The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0x80070020)

このエラーは、IISバインドしようとするIP:Portが使用されているにもかかわらず、netstatがそれが利用可能であると明確に示している場合にスローされます。

何が足りないのですか?

編集:サービスを開始しようとすると、システムイベントログに2つのイベントが記録されます。

Log Name:      System
Source:        Microsoft-Windows-IIS-W3SVC
Date:          7/19/2014 11:59:44 AM
Event ID:      1004
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      xxxx
Description:
The World Wide Web Publishing Service (WWW Service) did not register the URL prefix https://XXX.XXX.XXX.122:443/ for site 2. The site has been disabled. The data field contains the error number.
Event Xml:
<Event xmlns="http://schemas.Microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-IIS-W3SVC" Guid="{xxxxx}" EventSourceName="W3SVC" />
    <EventID Qualifiers="49152">1004</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2014-07-19T09:59:44.000000000Z" />
    <EventRecordID>119596</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>System</Channel>
    <Computer>xxxx</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="UrlPrefix">https://XXX.XXX.XXX.122:443/</Data>
    <Data Name="SiteID">2</Data>
    <Binary>20000780</Binary>
  </EventData>
</Event>

そして

Log Name:      System
Source:        Microsoft-Windows-HttpEvent
Date:          7/19/2014 11:59:44 AM
Event ID:      15005
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      XXX
Description:
Unable to bind to the underlying transport for [::]:443. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine.  The data field contains the error number.
Event Xml:
<Event xmlns="http://schemas.Microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-HttpEvent" Guid="{xxx}" EventSourceName="HTTP" />
    <EventID Qualifiers="49152">15005</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2014-07-19T09:59:44.330234300Z" />
    <EventRecordID>119597</EventRecordID>
    <Correlation />
    <Execution ProcessID="4" ThreadID="88" />
    <Channel>System</Channel>
    <Computer>XXX</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="DeviceObject">\Device\Http\ReqQueue</Data>
    <Data Name="Address">[::]:443</Data>
    <Binary>0000040002003000000000009D3A00C0000000000000000000000000000000000000000000000000430000C0</Binary>
  </EventData>
</Event>
5
Stephane

2.イベント「[::]:443」に示されているIPアドレスは、IPv6のように見えます。おそらく、両方のWebアプリケーションが、指定したIPv4-Address以外のすべてのIPv6-Addressをバインドしようとします。 IPv6を一時的に無効にして、問題が解消されるかどうかを確認してください。

2
user3767013