2010-07-16 1 views
0

간단한 문제가 발생했습니다. 미리 컴파일 된 웹 사이트를 호스팅하고 있습니다. 그것은 컴파일하고 내 로컬 상자에서 잘 작동합니다. 하지만 IIS에서 호스트하면 다음 오류로 인해 실패합니다.IIS에서 간단한 asp.net 사전 컴파일 문제가 발생했습니다.

'MyHero.Home1'유형을로드 할 수 없습니다.

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Home.aspx.vb" Inherits="MyHero.Home1" %> 

Bin에서 MyHero.dll을 찾을 수 있습니다. 나는 또한 이것을 오브제 브라우징 (object brower)에서 opend 해봤고 Home1 타입이 있음을 알 수있다. MyHero.Home1 유형이 존재하며 공개됩니다. 그래서 그것은 미리 컴파일됩니다. 내가 무엇을 놓치고 있는지 확실하지 않습니다. 이것은 VB.NET을 사용한 첫 번째 모험입니다. 코드 뒤에 부분 클래스의

Partial Public Class Home1 
    Inherits System.Web.UI.Page 

다른 부분 디자이너가 genrated있는됩니다 모양을

이다. Home.aspx.designer.vb에 있습니다.

Partial Public Class Home1 

미리 컴파일 된 사이트로 코드를 업로드하지 않습니다.

Windows 서버 2003에서 IIS를 사용하고 있습니다. 모든 포인터가 도움이 될 것입니다.

나는 Home1을 볼 수있다. 개체 탐색기의 MyHero 네임 스페이스 아래에 나열됩니다. 방금 홈 1 클래스에서 영웅 이름 공간을 추가했는지 확인하기 위해 동일한 결과를 시도했습니다. 또한 aspx 페이지에서 네임 스페이스 접두사를 제거하려고 시도하지 않았다.

Windows Server 2003에 IIS와 관련된 알려진 문제점이 있습니까? .NET 프레임 워크 및 IIS 설치 순서가 영향을 줄 수 있습니까? 내가 새로 설치 한 상자에 이것을 호스팅하고 있습니다. 그것은 내 개발 상자에서 잘 작동합니다.

덕택으로 퓨전 로그 뷰어를 설치했습니다. 여기에 바인딩 로그가 있습니다. 그다지 단서가없는 것 같습니다. 그거야?

The operation failed. 
Bind result: hr = 0x80131018. No description available. 

Assembly manager loaded from: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll 
Running under executable c:\windows\system32\inetsrv\w3wp.exe 
--- A detailed error log follows. 
=== Pre-bind state information === 
LOG: User = NT AUTHORITY\NETWORK SERVICE 
LOG: DisplayName = MyHero 
(Partial) 
LOG: Appbase = file:///C:/Inetpub/wwwroot/cmail/MyHero/ 
LOG: Initial PrivatePath = C:\Inetpub\wwwroot\cmail\MyHero\bin 
LOG: Dynamic Base = c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\2125db8d 
LOG: Cache Base = c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\2125db8d 
LOG: AppName = 97d7397b 
Calling assembly : (Unknown). 
=== 
LOG: This bind starts in default load context. 
LOG: Using application configuration file: C:\Inetpub\wwwroot\cmail\MyHero\web.config 
LOG: Using host configuration file: \\?\C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet.config 
LOG: Using machine configuration file from c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config. 
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind). 
LOG: Attempting download of new URL file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/2125db8d/97d7397b/MyHero.DLL. 
LOG: Attempting download of new URL file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/2125db8d/97d7397b/MyHero/MyHero.DLL. 
LOG: Attempting download of new URL file:///C:/Inetpub/wwwroot/cmail/MyHero/bin/MyHero.DLL. 
LOG: Assembly download was successful. Attempting setup of file: C:\Inetpub\wwwroot\cmail\MyHero\bin\MyHero.dll 
LOG: Entering download cache setup phase. 
ERR: Error extracting manifest import from file (hr = 0x80131018). 
ERR: Setup failed with hr = 0x80131018. 
ERR: Failed to complete setup of assembly (hr = 0x80131018). Probing terminated. 

답변

4

사람들이 문제를 해결할 수 있습니다. 그것은 Windows 7 보안 문제였습니다. Windows 7 노트북에서 서버로 코드를 업로드했습니다. dll은 숨겨진 보안 권한을 갖고있는 것으로 보입니다.

나는 winrar를 사용하여 dll을 보관하고 서버에서 추출했습니다. 모든 보안 권한이 제거되었는지 확인하십시오. DLL은 거의 일주일 동안 우리를 괴롭혔다.

도움 주셔서 감사합니다.

0

MyHero 네임 스페이스에 Home1 클래스를 배치하면 트릭을 수행하게됩니다. IMO.

+0

ObjectExplorer의 MyHero 네임 스페이스를 볼 수 있습니다. 그냥 이름 공간을 추가했지만 동일한 결과를 시도했다. 또한 aspx 페이지에서 네임 스페이스 접두사를 제거하지 않았다. – user376250

0

앱이 미리 컴파일되었다고 말하면 어떻게 만드나요? 페이지 지시문 (미리 컴파일 된 페이지에서)에 CodeBehind = ""특성이 표시되는 것에 놀랐습니다. 가상 디렉터리에 "Home.aspx.vb"파일이 없는지 확인하십시오. 당신이 필요로하는 것은 상속 = ""입니다. Inherits = "MyHero.Home1, MyHero"

+0

지금 진행 상황이있는 것 같습니다. 상속받은 어셈블리 이름에 어셈블리 이름을 추가 한 후 오류가 발생합니다. 'MyHero.dll'어셈블리를로드 할 수 없습니다. 페이지에 액세스하기 전에 컴파일되었는지 확인하십시오. 로컬 디렉토리에 VS2008의 게시 옵션을 사용하고 서버로 파일을 이동하는 중/ 이 어셈블리는 Bin 폴더 – user376250

+0

에 있습니다. 어셈블리가 오류 메시지와 함께 bin 폴더에 있다고 생각하기가 어렵습니다! 퍼블리싱 기능이 기본적으로 파일을 넣는 것을 좋아하는지 모르겠지만 로컬 파일의 맨 위에 있다는 것을 기억하는 것 같습니다 ... 프로젝트 외부의 새 폴더에 퍼블리시해야합니다. 그러나 이것을 사용하는 것이 더 좋을 것입니다. http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&displaylang=en –

+0

예, Matt는 매우 오류가 있습니다. 나의 논리적 인 생각을 최대한 살리기 위해 어떤 의미로든 소리를 내지 않는다. – user376250

0

시나리오가 정상적으로 작동하는 것처럼 들리지만 ASPX 및 코드에 이상이없는 것 같습니다. -behind 파일.

응용 프로그램을 실행중인 IIS 서버에 액세스 할 수있는 경우 .NET 런타임이 MyHero 어셈블리를로드하려고 할 때 퓨전 로그 뷰어를 사용하여 어떤 일이 발생하는지 확인할 수 있습니다. This MSDN Magazine article에는 바인더 로깅 사용 및 Fusion Log Viewer 사용에 대한 세부 정보가 포함되어 있습니다. 바라건대 이것으로 어셈블리가 발견되지 않는 이유를 알 수 있습니다.

+0

.net 프레임 워크 SDK가 서버에 설치되어 있지 않습니다. 퓨전 로그는 SDK 도구라고 생각하십니까? – user376250

+0

예, .NET Framework SDK의 일부입니다. 확실하게 작동하는지 모르지만 퓨전 로그 뷰어 실행 파일 (* fuslogvw.exe *)을 일시적으로 서버에 복사하여 문제 해결을 돕고 나중에 제거 할 수 있습니다. – dariom

+0

상자에 admin pevilages를 설치하고 SDK를 설치하는 데 시간이 좀 걸렸습니다. 나는 로그 doest를 게시했다 나를 위해 많은 의미가있는 것 같다. 어떤 단서가 생기면 도와주세요. – user376250