我正在尝试在Web服务中创建一个新的Web应用程序。我正在使用此代码执行此操作。
SPWebApplicationBuilder webAppBuilder = new SPWebApplicationBuilder(SPFarm.Local);
webAppBuilder.Port = port;
webAppBuilder.RootDirectory = new System.IO.DirectoryInfo(@"C:\Inetpub\wwwroot\wss\VirtualDirectories\" + port);
webAppBuilder.CreateNewDatabase = true;
webAppBuilder.DatabaseName = "WSS_Content_00000000000000000000000000000000";
SPWebApplication newWebApplication = webAppBuilder.Create();
newWebApplication.Provision();
现在我将魔杖添加到同一个Web应用程序中。根据我的理解,我可以用它来做到这一点。
newWebApplication.ContentDatabases.Add(new SPContentDatabase());
新运算符应该创建一个不成功的新内容数据库实例。 (NullReferenceException异常)。 IDE建议我使用new运算符,即使我已经使用过它。
对此有何想法?有关添加多个内容数据库的任何参考资料吗?
答案 0 :(得分:3)
如果不指定数据库信息,则无法添加新的内容数据库。您的代码只创建一个空的SPContentDatabase对象,而不包含任何服务器,数据库名称或连接信息。当Add方法尝试访问从未初始化的数据库属性时,可能会发生NullReferenceException。
尝试使用直接接受数据库信息的Add variants,例如
newWebApplication.ContentDatabases.Add("Database_Server", "Database_Name",
null, null, 1000, 1000, 0);