2013-05-15 2 views
4

VB 스크립트를 실행해야하는 웹 응용 프로그램 (VS2012 웹 포함)을 게시하려고합니다.안전하지 않은 코드로 웹 응용 프로그램 게시

해당 스크립트는 현재 권한 부족으로 인해 제대로 실행되지 않습니다. 현재 사용자로 실행하고 일부 자격 증명을 제공하려고합니다. 입력해야하는 비밀번호는 System.Security.SecureString이어야하며 char *를 작성해야합니다.

디버그에서 앱을 실행할 때 모든 것이 정상적으로 작동합니다. 서버에 응용 프로그램을 게시 할 수있는 시간이 올 때, 그것은 말한다 :

1>C:\SVN\...\Default.aspx.cs(108,21,108,27): error CS0227: Unsafe code may only appear if compiling with /unsafe

내가 프로젝트 속성에서 안전하지 않은 코드 허용했다,하지만 난 VS가 보는 이유를 알고 해당 속성 때 디버깅 및하지 않습니다 게시 할 때가 아닙니다.

공개 할 때 오류 목록에 CS0227 오류가 표시되지만 1 초 동안 만 남아 있으면 사라집니다 ... 두 번째 오류로 인해 빌드가 실패하게됩니다.

문제는 무엇입니까? 여기

내 코드입니다 :

Process proc = new Process(); 
ProcessStartInfo psi = new ProcessStartInfo("C:\\Windows\\System32\\cscript.exe", "\"" + scriptPath + "\" " + args); 
psi.UseShellExecute = false; 
psi.RedirectStandardInput = true; 
psi.RedirectStandardOutput = true; 
psi.RedirectStandardError = true; 
psi.CreateNoWindow = true; 

psi.Domain = "MyDomain"; 
psi.UserName = "MyUsername"; 

System.Security.SecureString hashPwd; 

unsafe 
{ 
    // Instantiate a new secure string. 
    fixed (char* pChars = pwd) 
    { 
     hashPwd = new System.Security.SecureString(pChars, pwd.Length); 
    } 
} 

psi.Password = hashPwd; 


//Set the process' start info 
proc.StartInfo = psi; 

//We start the script. 
proc.Start(); 

답변

2

Web.config 파일에이 코드를 추가하고 위해 노력하고 있습니다 확인하시기 바랍니다 당신

<compilers> 
<compiler language="c#;cs;csharp" extension=".cs" compilerOptions="/unsafe" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
</compilers> 
+0

아니요, 동일한 문제가 있습니다. 컴파일 할 때 태그에 동봉해야했지만 아직 게시되지 않았습니다 ... 이상한 일은 컴파일러 오류 (CS0227)가 약 1 개입니다 두 번째로 사라집니다. – Bun

+0

나에게도 같은 문제가있다. 그것을 막을 수있는 해결책이 있습니까? –

7

그것은 안전하지 않은 코드에 게시하는 것은 매우 간단합니다

다음과 같이하십시오. enter image description here

당신이 안전의 프로젝트 설정을 무시 게시 할 때
+1

답변 주셔서 감사하지만 그 플래그는 C#에게 안전하지 않은 코드를 컴파일하도록 지시하는 것입니다 ... 나를 위해 일한 솔루션은 안전하지 않은 코드를 제거하고 C#에서 명시 적으로 포인터를 사용하여 포기하는 것입니다. – Bun

+0

사용하고 있습니다 포인터와 즐겁게, 그게 나를 위해 일한. – IamStalker

2

이 보인다, 그래서 당신은 수동으로 .CSPROJ 파일을 열어야과 같습니다 : 나를 위해 그것을 해결

<PropertyGroup> 
    ... 
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks> 
    </PropertyGroup> 

합니다.

이 문제를 인터넷 검색하면 찾을 수 없지만 아무 것도 찾을 수 없습니다. * .targets 파일에서 "AllowUnsafeBlocks"태그로 안내하는 "안전하지 않은"파일을 확인했습니다.

관련 문제