我正在尝试发布一个Web应用程序(使用VS2012 Web),其中需要运行VB脚本。由于权限不足,该脚本目前无法正确运行。我当前正在尝试以用户身份运行它并提供一些凭据。我必须提供的密码必须在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秒钟,然后就消失了...似乎这一秒足以使构建失败。
你有什么想法吗?
以下是我的代码:
当我在调试模式下运行我的应用程序时,一切都正常,符合预期。但是当将应用程序发布到服务器时,它会显示以下错误:
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();