如何从命令行正确创建dotnetnuke用户帐户?

时间:2012-05-23 17:18:09

标签: c# dotnetnuke

我正在尝试创建命令行快速程序,以便将用户从旧系统(非DNN)一次性导入到新系统。但是,NullReferenceException会抛出以下代码行:

        var user = new UserInfo();
        user.PortalID = portalId;
        user.FirstName = firstName;

在最后一行是异常发生的地方。我知道这个代码在模块中运行时有效,因为它是我正在使用的库的一部分。我想这是错误的,因为UserInfo类依赖于通常在Web环境中设置的信息。

我有什么方法可以做到这一点?我真的不希望将其作为在生产站点上运行的模块。

1 个答案:

答案 0 :(得分:1)

您需要配置必要的提供程序才能使用UserControllerUserInfo类。最直接的方法是使用网站的工作配置并将应用程序实现为DNN模块。 但您也可以尝试将所需的DLL和配置部分从DNN站点复制到控制台应用程序,并使用DNN源来调试问题。

在这种情况下,源代码告知设置UserInfo对象的FirstName属性失败,因为FirstName属性由配置文件提供程序支持,该提供程序使用缓存提供程序和数据提供程序数据访问。 默认情况下,配置文件由使用DNNProfileProviderFileBasedCachingProvider的{​​{1}}实施,以获取配置文件属性和数据。调用SqlDataProvider时,还会为新的UserInfo对象检索配置文件属性定义。这就是ProfileController.GetUserProfile被抛出的原因。

DNN 5.6.3中的相应属性是:

<强> UserInfo.vb

NullReferenceException