'IIS'에 해당되는 글 3건

  1. 2010.06.15 Get your (old) COM-based or "ASP.NET with Interop" web app working in Windows Server 2003 R2 64 Bit
  2. 2010.06.15 64비트 윈도우즈에서 32비트 프로그램이 동작하도록 IIS 6.0 설정하기
  3. 2010.06.15 64비트 윈도우즈 (IIS 6.0) 에서 32비트 프로그램 동작시키기

Get your (old) COM-based or "ASP.NET with Interop" web app working in Windows Server 2003 R2 64 Bit

서버/IIS 2010. 6. 15. 14:51
You have windows 2003 R2 64 bit SP1. You have the 64bit version of the .NET framework (V2 or higher) installed. No other changes have been made to IIS - it seems to run just fine for serving .NET and HTML. You install your web application that includes COM, try to run it, and BANG...
Microsoft VBScript runtime error '800a01ad' 
ActiveX component can't create object
The cause? Its because those COM objects are 32 bit components, and by default IIS won't work with 32 components. You need to tell IIS to run in 32 bit compatibility mode (WOW64). To do this, you need to configure IIS to run in 32 bit compatibility mode, as explained by this link.
But wait! Its not quite that easy! If you do this, then you're telling IIS to run in 32 bit mode, but then you've already got the 64 bit ASP.NET DLL's registered with IIS, so the first time you hit your app, you'll probably see a big fat "Service Unavailable" Error message. If you look in the event log, you'll see your application pools are crashing with this error:
A process serving application pool 'DefaultAppPool' reported a failure.

The process id was '4156'. The data field contains the error number.
So, you need to register the 32 bit ASP.NET DLL's with IIS. But wait! You can't do that before you un-register the existing 64 bit ones.
Enough waffling. Here's the step-by-step :-

1. Un-register the 64 bit ASP.NET DLL's. In a command prompt, navigate to C:\Windows\Framework64\v2.0.50727\ and from there run "aspnet_regiis -u"
2. Set IIS to work in 32 bit compatibility (WOW64) mode: 
cscript c:\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32BitAppOnWin64 1
3. Register the 32-Bit ASP.NET DLL's. Navigate to C:\Windows\Framework\v2.0.50727\ and from there run "aspnet_regiis -i"
4. Finally, in IIS, Navigate to "Web Service Extensions", and make sure that ASP.NET is "allowed".
:

64비트 윈도우즈에서 32비트 프로그램이 동작하도록 IIS 6.0 설정하기

서버/IIS 2010. 6. 15. 14:48
Windows Server 2003TM, Service Pack 1 enables IIS 6.0 to run 32-bit Web applications on 64-bit Windows using the Windows-32-on-Windows-64 (WOW64) compatibility layer. IIS 6.0 using WOW64 is intended to run 32-bit personal productivity applications needed by software developers and administrators, including 32-bit Internet Information Services (IIS) Web applications. 

64비트 윈도우즈에서 32비트 프로그램을 동작시키는 방법에 대해 좀더 많은 정보를 원한다면 64비트 윈도우즈에서 32비트 프로그램 동작시키기 를 참조하라.

64비트 윈도우즈에서 32비트 프로그램이 동작하도록 IIS 6.0 설정하기

  1. 명령 프롬프트 창을 열고 %systemdrive%\Inetpub\AdminScripts 디렉토리로 이동한다.
  2. 다음과 같이 명령어를 입력하고 엔터를 누른다. 
    cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 "true"

출처 : http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/405f5bb5-87a3-43d2-8138-54b75db73aa1.mspx?mfr=true
:

64비트 윈도우즈 (IIS 6.0) 에서 32비트 프로그램 동작시키기

서버/IIS 2010. 6. 15. 14:42
Windows Server 2003™, Service Pack 1 enables IIS 6.0 to run 32-bit Web applications on 64-bit Windows using the Windows-32-on-Windows-64 (WOW64) compatibility layer. IIS 6.0 using WOW64 is intended to run 32-bit personal productivity applications needed by software developers and administrators, including 32-bit Internet Information Services (IIS) Web applications.
On 64-bit Windows, 32-bit processes cannot load 64-bit DLLs, and 64-bit processes cannot load 32-bit DLLs. If you plan to run 32-bit applications on 64-bit Windows, you must configure IIS to create 32-bit worker processes. Once you have configured IIS to create 32-bit worker processes, you can run the following types of IIS applications on 64-bit Windows:
  • Internet Server API (ISAPI) extensions
  • ISAPI filters
  • Active Server Page (ASP) applications (specifically, scripts calling COM objects where the COM object can be 32-bit or 64-bit)
  • ASP.NET applications
IIS can, by default, launch Common Gateway Interface (CGI) applications on 64-bit Windows, because CGI applications run in a separate process.

Configuring IIS to run 32-bit Web applications on 64-bit Windows
Before you configure IIS to run 32-bit applications on 64-bit Windows, note the following:

  • IIS only supports 32-bit worker processes in Worker Process Isolation mode on 64-bit Windows.
  • On 64-bit Windows, the World Wide Web Publishing service can run 32-bit and 64-bit worker processes. Other IIS services like the IIS Admin service, the SMTP service, the NNTP service, and the FTP service run 64-bit processes only.
  • On 64-bit Windows, the World Wide Web Publishing service does not support running 32-bit and 64-bit worker processes concurrently on the same server.
For the procedure to run 32-bit Web applications on 64-bit Windows, see Configuring IIS to Run 32-bit Applications on 64-bit Windows.

After configuring IIS to run 32-bit Web applications on 64-bit Windows

After you configure IIS 6.0 to run 32-bit Web applications, IIS stores 32-bit DLLs and ISAPIs in the %windir%\syswow64\inetsrv directory. All other IIS files, including the MetaBase.xml file, are stored in the %windir%\system32\inetsrv directory. File access to the System32 and sub directories are transparently redirected based on the bitness of the process making that file access (64-bit processes have full access, while 32-bit processes have access to System32 redirected to Syswow64). If your legacy applications have specific 32-bit file access needs and you notice application failures, see if the application needs to reference the new %windir%\syswow64\inetsrv to resolve the problem.

: