由于对象的当前状态,操作无效?

发布于 2024-11-18 14:51:51 字数 2135 浏览 1 评论 0原文

我在 Visual Stuadio 2008 中编写了以下代码,以编程方式在 sharepoint 中创建一个新的 Web 应用程序,并在 invalidOperationException 下收到以下错误,例如“由于对象的当前状态,操作无效”。

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        SPSecurity.RunWithElevatedPrivileges(delegate()
        {
        SPWebApplicationBuilder webAppBuilder = new SPWebApplicationBuilder(SPFarm.Local);

        SPWebApplication newApplication;
        int myPort = 20002;

        webAppBuilder.Port = myPort;
        webAppBuilder.RootDirectory = new System.IO.DirectoryInfo("C:\\Inetpub\\wwwroot\\wss\\VirtualDirectories\\" + myPort);
        webAppBuilder.ApplicationPoolId = "AppPool1"; // application pool

        webAppBuilder.ApplicationPoolUsername = "Anant_Raj";
        System.Security.SecureString password = new System.Security.SecureString();                

        string strName = "#ana123";                

        char[] pass = strName.ToCharArray();                

        foreach (char c in pass)                

        password.AppendChar(c);               

        webAppBuilder.ApplicationPoolPassword = password;

        webAppBuilder.CreateNewDatabase = true; // Create new database            

        webAppBuilder.DatabaseName = "wss_site2011_content";    // database name            

        webAppBuilder.DatabaseServer = webAppBuilder.DefaultZoneUri.Host;  //Host name/computer name           

        webAppBuilder.UseNTLMExclusively = true;  // Use NTLM authentication
        webAppBuilder.AllowAnonymousAccess = true;
        newApplication = webAppBuilder.Create(); // Create new web application
        newApplication.Provision();           //Provision it into web farm 
        });

    }
}

有什么建议吗?

I have written following code in visual stuadio 2008 to crete a new web application in sharepoint programmatically and getting following error like "Operation is not valid due to current state of the object" under invalidOperationException.

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        SPSecurity.RunWithElevatedPrivileges(delegate()
        {
        SPWebApplicationBuilder webAppBuilder = new SPWebApplicationBuilder(SPFarm.Local);

        SPWebApplication newApplication;
        int myPort = 20002;

        webAppBuilder.Port = myPort;
        webAppBuilder.RootDirectory = new System.IO.DirectoryInfo("C:\\Inetpub\\wwwroot\\wss\\VirtualDirectories\\" + myPort);
        webAppBuilder.ApplicationPoolId = "AppPool1"; // application pool

        webAppBuilder.ApplicationPoolUsername = "Anant_Raj";
        System.Security.SecureString password = new System.Security.SecureString();                

        string strName = "#ana123";                

        char[] pass = strName.ToCharArray();                

        foreach (char c in pass)                

        password.AppendChar(c);               

        webAppBuilder.ApplicationPoolPassword = password;

        webAppBuilder.CreateNewDatabase = true; // Create new database            

        webAppBuilder.DatabaseName = "wss_site2011_content";    // database name            

        webAppBuilder.DatabaseServer = webAppBuilder.DefaultZoneUri.Host;  //Host name/computer name           

        webAppBuilder.UseNTLMExclusively = true;  // Use NTLM authentication
        webAppBuilder.AllowAnonymousAccess = true;
        newApplication = webAppBuilder.Create(); // Create new web application
        newApplication.Provision();           //Provision it into web farm 
        });

    }
}

Any suggestion?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过期情话 2024-11-25 14:51:51

尝试这样的事情。

 protected void Page_Load(object sender, EventArgs e)
{
    SPWebApplicationBuilder webAppBuilder;
    SPWebApplication newApplication;

    // Only the objects creation in the RunWithElevatedPrivileges block
    SPSecurity.RunWithElevatedPrivileges(delegate()
    {
        webAppBuilder = new SPWebApplicationBuilder(SPFarm.Local);
    });  

    // other statement outside the RunWithElevatedPrivileges block

    int myPort = 20002;

    webAppBuilder.Port = myPort;
    webAppBuilder.RootDirectory = new System.IO.DirectoryInfo("C:\\Inetpub\\wwwroot\\wss\\VirtualDirectories\\" + myPort);
    webAppBuilder.ApplicationPoolId = "AppPool1"; // application pool

    webAppBuilder.ApplicationPoolUsername = "Anant_Raj";
    System.Security.SecureString password = new System.Security.SecureString();                

    string strName = "#ana123";                

    char[] pass = strName.ToCharArray();                

    foreach (char c in pass)                

    password.AppendChar(c);               

    webAppBuilder.ApplicationPoolPassword = password;

    webAppBuilder.CreateNewDatabase = true; // Create new database            

    webAppBuilder.DatabaseName = "wss_site2011_content";    // database name            

    webAppBuilder.DatabaseServer = webAppBuilder.DefaultZoneUri.Host;  //Host name/computer name           

    webAppBuilder.UseNTLMExclusively = true;  // Use NTLM authentication
    webAppBuilder.AllowAnonymousAccess = true;
    newApplication = webAppBuilder.Create(); // Create new web application
    newApplication.Provision();           //Provision it into web farm 
}

Try something like this.

 protected void Page_Load(object sender, EventArgs e)
{
    SPWebApplicationBuilder webAppBuilder;
    SPWebApplication newApplication;

    // Only the objects creation in the RunWithElevatedPrivileges block
    SPSecurity.RunWithElevatedPrivileges(delegate()
    {
        webAppBuilder = new SPWebApplicationBuilder(SPFarm.Local);
    });  

    // other statement outside the RunWithElevatedPrivileges block

    int myPort = 20002;

    webAppBuilder.Port = myPort;
    webAppBuilder.RootDirectory = new System.IO.DirectoryInfo("C:\\Inetpub\\wwwroot\\wss\\VirtualDirectories\\" + myPort);
    webAppBuilder.ApplicationPoolId = "AppPool1"; // application pool

    webAppBuilder.ApplicationPoolUsername = "Anant_Raj";
    System.Security.SecureString password = new System.Security.SecureString();                

    string strName = "#ana123";                

    char[] pass = strName.ToCharArray();                

    foreach (char c in pass)                

    password.AppendChar(c);               

    webAppBuilder.ApplicationPoolPassword = password;

    webAppBuilder.CreateNewDatabase = true; // Create new database            

    webAppBuilder.DatabaseName = "wss_site2011_content";    // database name            

    webAppBuilder.DatabaseServer = webAppBuilder.DefaultZoneUri.Host;  //Host name/computer name           

    webAppBuilder.UseNTLMExclusively = true;  // Use NTLM authentication
    webAppBuilder.AllowAnonymousAccess = true;
    newApplication = webAppBuilder.Create(); // Create new web application
    newApplication.Provision();           //Provision it into web farm 
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文