2010-08-11 2 views
5

매일 밤 2 주 동안 포럼 스레드를 철저하게 읽고 난이도에 관계없이 모든 제안 된 솔루션을 시도했습니다. 이 같은 문제에 관해 많은 포럼 스레드가있는 경우와 마찬가지로이 사이트는 내 개발 컴퓨터에서 제대로 작동합니다. 오류없이 배포합니다. 프로덕션 서버에서 작동하고 데이터베이스의 데이터를 읽지 만 프로필에 액세스하려고하면이 오류로 인해 충돌합니다.profilecommon에 대한 참조로 인해 오류가 발생합니다. 값은 null 일 수 없습니다. 매개 변수 이름 : type

"app_code.compiled 파일을 제거하십시오."라는 옵션을 선택하거나 선택을 취소했지만 실제로는 Visual Studio 2005 옵션이었습니다. Visual Studio 2010에서는 어디에도 찾을 수 없습니다. App_Code.dll이 내 bin 디렉토리에 있는지 확인하는 게시물이 많이 있습니다. 그것은 존재합니다. app_code.compile 파일을 수동으로 삭제하여 차이가 있는지 확인했습니다. 타겟 프레임 워크를 4.0에서 2.0 및 3.5로 변경했습니다. IIS에서 사이트를 완전히 삭제하고 다른 이름으로 다른 폴더를 만든 다음 "이 미리 컴파일 된 사이트를 업데이트 할 수 있도록 허용"및 "고정 된 명명 및 단일 페이지 어셈블리 사용"의 모든 조합으로 사이트를 다시 배포했습니다. System.Web.Profile 및 System.Web 및 System.Web.Profile.ProfileCommon에 대한 참조를 포함했습니다. 새로운 .net 프레임 워크 v4.0을 목표로하는 새 웹 사이트를 만들고 web.config 파일을 내 응용 프로그램에 복사하고 내 프로필 항목을 다시 만들어서 구성 파일에 아무 것도 입력하지 않도록했습니다. 나는 촛불을 태우고 부두교의 매력을 사용했습니다. 나는기도했다. 나는 문자 그대로이 오류에 관한 모든 포럼 스레드에 대해 생각할 수있는 모든 제안을 처음 다섯 페이지에 걸쳐서 시도 했으므로 google과 bing 모두에서 수익을 얻을 수 있습니다. 나는 거의 아무것도하지 않고이 웹 사이트가이 오류없이 나오도록 노력하면서 14 일을 보냈다.

하나의 게시물은 bin 디렉토리의 app_code.dll에 대한 참조가 있는지 확인합니다. 동적으로 생성 되었기 때문에 어떻게 해야할지 모르겠습니다.

아무도 이것에 대한 신선한 아이디어가 있습니까?

+2

실제 오류 및 몇 가지 예제 코드 또는 부분 스택 추적을 가지고 좋은 것입니다. – cofiem

+0

여기 내 생각은 : upvotes에 대한 커뮤니티를 구걸하십시오, 그래서 당신은 현상금으로 그들을 보낼 수 있습니다. –

+0

스택 추적을 포함하여 자세한 예외 정보가 있습니까? –

답변

4

좋아요 :-) 코드 예제없이 확신, 나는 : 해결 방법은 따라서 프로파일의 속성에 액세스하는 것입니다 이 주제에 대해 많은 독서와 실험을 해오 고 있으며,이 오류를 검색하여이 스레드에서 우연히 발견 될 수있는 사람들에게 유용한 정보를 수집하고 컴파일했다고 생각합니다. 내가 할 일은 단순히 관련있는 정보에 대한 몇 개의 링크 뒤에 구어체 설명을 제공하는 것입니다.

Visual Studio에서 지원하는 웹 디자인 방법에는 두 가지가 있습니다. 웹 응용 프로그램 및 웹 사이트. 이는 2005, 2008 및 2010에 해당합니다.이 디자인 원칙의 분할은 Visual Studio 2003이 웹 응용 프로그램 모델 만 지원했으며이 모델이 Visual Studio 2005 릴리스와 함께 변경되었다는 사실에서 유래했습니다. 디자인 원칙을 이전 버전과 동일하게 만들기 위해 웹 응용 프로그램 방법론이 Visual Studio 2005에 추가되어 개발자가 분명히 뛰어난 기술 수준을 차지할 수있는 매우 혼란스러운 포크를 만듭니다.

두 모델의 차이점에 대해서는 자세히 설명하지 않겠습니다. 이 게시물 하단의 링크에 대한 자세한 내용이 있습니다. 그러나 프로파일이 웹 애플리케이션 기능을 사용하여 외부에서 지원되지 않는다고 말하는 것으로 충분합니다.

또한, 훨씬 더 혼란스럽고, 이것이 나를 걸러내는 것입니다. 사이트가 빌드 -> 웹 사이트 게시 메뉴 옵션을 통해 게시 된 경우 웹 사이트 모델에서 프로필이 작동하지 않습니다. 어쩌면) 사전 컴파일 된 수동 dll은 "복사 사이트"또는 FTP 또는 사용자가 사용하는 모든 것을 통해 복사됩니다. 사전 편집은 명령 행을 통해 수행됩니다. 아래에 설명하는 방법에 대한 지침이있는 링크가 있습니다. 그러나 다시, 나는 이것을 스스로 테스트하지 않았기 때문에 그것이 도움이되는지 나는 모른다.

빌드 -> 게시 웹 사이트 배포 방법에서 프로필이 작동하지 않는 이유는 IIS가 처음 페이지를 동적으로 컴파일 할 때 웹 구성에서 정의한 프로필 속성으로 ProfileCommon 클래스가 동적으로 작성되기 때문입니다 액세스됩니다. "빌드 -> 게시 웹 사이트"옵션을 사용하면 DLL을 잘 컴파일하지만이 클래스는 생성하지 않습니다.

솔직히 말해서 웹 사이트에 빌드 -> 웹 사이트 게시 옵션이 포함 된 이유가 확실하지 않습니다. 필자가 읽은 모든 것에서 웹 사이트 대 웹 응용 프로그램 모델의 핵심은 ASP.net 경험을 기존 웹 개발 환경과 유사하게 만드는 것입니다.이 환경에서 파일을 컴퓨터에서 편집하고 서버에 FTP로 전송하거나 서버에서 간단하게 편집 할 수 있습니다. 예, 액세스하기 전에 컴파일해야하지만 의도적으로 컴파일이 동적으로 발생합니다. 먼저 사이트를 먼저 컴파일 한 다음 ProfileCommon 클래스를 동적으로 만들지 않고 컴파일 한 다음 효과적으로 제거해야합니다. 웹 사이트 디자인에 asp.net 접근 방식의 위대한 기능 중.

웹 사이트 모델을 사용하고 동적 컴파일을 위해 파일을 서버에 복사하면 소스 코드가있는 파일이 서버에있는 서버에 저장되므로 코드 보안에 대한 우려가 많은 게시물이 있습니다. 프리 컴파일 된 상태. 그러나 필자는 Perl이나 PHP, 또는 고전적인 ASP와 같은 다른 웹 스크립팅 언어와 다른 점을 보지 못했습니다. 이러한 언어로 코드는 취약한 곳으로 나옵니다. 모든 코드는 잘못 구성된 서버에서 취약합니다. 또한 코드가 컴파일 되더라도 잘 구성된 IIS 서버의 보안을 우회하여 소스 파일에서 얻는 기술을 가진 해커는 컴파일 된 파일을 가져 와서 ILDASM을 통해 실행할 수 있습니다.그래서 전문적으로 난독 화가되지 않는 한, 그 차이점은 무엇입니까?

asp.net 웹 사이트에서 프로필을 사용하려면 웹 사이트 프로젝트 대 웹 응용 프로그램 프로젝트로 사이트를 만든 다음 게시하는 대신 서버로 복사하십시오. 빌드 메뉴를 통해. 미리 컴파일 한 다음 게시 할 수도 있지만 단순히 복사하여 동적 컴파일 작업을 수행한다는 것을 알고 있습니다.

내가 뭔가를 놓치고 다른 방법이 있다면, 나는 그것에 대해 읽는 것을 좋아할 것입니다. 그 사이에 믿을 수 없을만큼 도움이되는 연결은 여기있다. 많은 덕분에이 경로에 저를 설정 5arx합니다 :

http://www.codersbarn.com/post/2008/06/ASPNET-Web-Site-versus-Web-Application-Project.aspx

http://msdn.microsoft.com/en-us/library/dd547590.aspx

http://msdn.microsoft.com/en-us/library/ms227972.aspx

+0

다행스럽게도 다른 사용법은 어떨까요? ;-) – 5arx

1

설명서를 보았다고 가정합니다 (hereherehere).

익명 사용자의 속성에 액세스하거나 속성을 설정하는 중 오류가 발생했습니다. 애논에는 할 수없는 것들이 많이 있습니다. 사용자.

프로필/회원과 관련된 다른 오류가 있습니까? db 테이블 또는 응용 프로그램 ID/사용자 ID에 문제가있을 수 있습니다. Context.Request.AnonymousID은 db에서 프로필 문제를 디버깅 한 것으로부터 무엇을 반영하지 않을 수도 있습니다.

정말로 붙어 있다면 source for the .Net Framework을 가져 와서 디버깅하는 것이 좋습니다.

+0

스택 추적 :-) 코드 예제없이 특정 수 : 해결 방법은 따라서 프로파일의 속성에 액세스하는 것입니다 [경우 ArgumentNullException : 값은 null 일 수 없습니다. 매개 변수 이름 : 유형] System.Activator.CreateInstance (타입 타입, 부울 비공개) 9643414 System.Web.Profile.ProfileBase.CreateMyInstance (문자열 이름, 부울 IsAuthenticated는) 79 System.Web.Profile.ProfileBase.Create (문자열 이름, 부울 IsAuthenticated는) 247 System.Web.HttpContext.get_Profile() 107 _perfect.get_Profile() +20 _perfect.Page_Load (개체 보낸 사람, EventArgs입니다 전자) 249 System.Web.Util.CalliHelper .EventArgFunctionCaller (intPtr fp, Object o, Object t, EventArgs e) +14 – Camenwolf

3

코드에서 프로필에 액세스 할 수 없다는 말입니까? 그렇다면 일부 코드/의사 코드 pls를 게시 할 수 있습니까? 나는 이것이 지난 주에 겪었던 문제라고 생각한다. - 5arx 11 분전

지난 주 비슷한 문제가 있었는데 ASP.Net 웹 사이트 프로젝트를 웹 애플리케이션으로 변환했다. 전자의 경우 프로필은 web.config에서 선언적으로 정의됩니다. 그러나 웹 애플리케이션 프로젝트는 동적으로 생성 된 app_code DLL에 액세스하는 데 문제가 있습니다 (런타임까지 .NET에 의해 빌드되지 않음).나는 완전히 질문을 오해 한 경우

 
ComplexProfileProperty _cpp = (ComplexProfileProperty)HttpContext.Current.Profile.GetPropertyValue("valuename"); 

제 H,

사과 - 하드

+0

여기 올바른 트랙에 5x가있을 것 같은데. 새로운 것을 시도해 주셔서 감사합니다. 아시다시피, .net 환경과 관련하여 웹 사이트와 웹 응용 프로그램의 차이점에 관해서는 완전히 명확하지 않아야합니다. 나는 내 사이트에서 app_code.dll이 사이트가 서버에 게시 될 때까지 작성되지 않았다는 것을 알고 있습니다. 나는 단순히 서버 위치로 사이트를 복사 할 수 있으며, 그것은 (마치 내 dev 컴퓨터에서와 마찬가지로) 작동하지 않으며 의심스럽게 결석 한 app_code.dll가있다. 게시하면 app_code.dll이 자동 생성되고이 오류로 인해 사이트가 다운됩니다. 오늘 밤에 집에 올 때 코드를 게시 할 것입니다. – Camenwolf

+0

ASP.net의 사이트 및 응용 프로그램 모델 간의 차이점을 전혀 느끼지 못했습니다. 다음은이 문제를 겪고있는 사람에게 도움이되어야하는 많은 링크가 포함 된 예술 작품입니다. http://www.codersbarn.com/post/2008/06/01/ASPNET-Web-Site-versus-Web-Application-Project.aspx. 나는 돌아가서 빈 응용 프로그램과 사이트를 VS에 만들어 내 것이 실제로 "사이트"인지 확인합니다. 나는 사이트를 서버에 복사 할 수 있으며 작동한다. 내가 "출판하다"면 그것은하지 못한다. 나는 이것이 예상되는 것으로 생각하기 시작했으며, "사본"이 사이트에 대해 선호 될 수도 있습니다. 나는 조금 더 조사한 후에 대답을 올릴 것이다. – Camenwolf

+1

이것들을 한번보세요 : http://vishaljoshi.blogspot.com/2009/08/web-application-project-vs-web-site.html 및 http://stackoverflow.com/questions/590501/difference-between-web-site-and-project-in-visual-studio/2736096#2736096. 의미있는 개발을하고 있으며 네임 스페이스를 테스트하고 관리 할 수 ​​있어야하는 경우 웹 응용 프로그램 프로젝트 만 수행 할 수 있습니다. – 5arx

관련 문제