如何在DNN站点的虚拟目录下安装CS(Community Server)-阿里云开发者社区

开发者社区> 人工智能> 正文
登录阅读全文

如何在DNN站点的虚拟目录下安装CS(Community Server)

简介:

第一次尝试安装CS(Community Server) ,想把DNN和CS结合起来,所以就在DNN的站点下面建了虚拟目录CSS存放CS的文件,但是,一打开运行,就出现如下错误

Line 37: <!-- HttpModules for Common Functionality -->
Line 38: <httpModules>
Line 39: <add name="UrlRewrite" type="DotNetNuke.HttpModules.UrlRewriteModule, DotNetNuke.HttpModules.UrlRewrite" />
Line 40: <add name="Exception" type="DotNetNuke.HttpModules.ExceptionModule, DotNetNuke.HttpModules.Exception" />
Line 41: <add name="UsersOnline" type="DotNetNuke.HttpModules.UsersOnlineModule
..........................................................................

来看是由于虚拟目录继承了主目录的Web.config中的<httpModules>而导致的,无耐,只能到CNBlogs来求助,但是有位仁兄给我的答案是更本就是答非所问.

只有自己尝试自查MSDN,查到了一个Rmove的方法,在CS的web.config中,添加如下
    <remove name="UrlRewrite" />
   <remove name="Exception" />
   <remove name="UsersOnline" />
   <remove name="ProfilePrototype" />
   <remove name="AnonymousIdentificationPrototype" />
   <remove name="RoleManagerPrototype" />
   <remove name="DNNMembership" />
   <remove name="Personalization" />
一运行,还是同样错误,看来只能把哪几个DLL Copy到CS的bin目录下了,
DNNSQLMembershipProvider.dll
DNNSQLProfileProvider.dll
DNNSQLRoleProvider.dll
DotNetNuke.dll
DotNetNuke.HttpModules.DNNMembership.dll
DotNetNuke.HttpModules.Exception.dll
DotNetNuke.HttpModules.Personlization.dll
DotNetNuke.HttpModules.URLRewrite.dll
DotNetNuke.HttpModules.UsersOnline.dll
再运行,终于,这个问题不再出现了,但是又有了新的问题
Configuration Error 
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: Annoymous_id_module_not_enabled: Country 

Source Error: 

[No relevant source lines] 

Source File: none Line: 0 


在google上查找了一下,果然,出现这个问题的人还挺多的, 在外面找到的解决方案
In CS web.config I removed ( commented out ) following lines: 

_______________________________________________________________________________ 
<!--<anonymousIdentification 
enabled="true" 
cookieName=".ASPXANONYMOUS" 
cookieTimeout="100000" 
cookiePath="/" 
cookieRequireSSL="false" 
cookieSlidingExpiration="true" 
cookieProtection="None" domain="" />--> 
_______________________________________________________________________________ 

Now CommunityServer takes over DNN's Setting which enables anonymous Identification per default. It should also work if you set this option in both DNN's and CS's web.config in the same way! 

还要在CS的web.config中注释掉的有
<add name="timezone" type="System.Double" defaultValue="0" />这一句
OK,CS总算能运行起来了,不知道还有没有别的问题

ps: 补充一点,
由于,DNN的Timezone属性定义是
<add name="TimeZone" type="integer" allowAnonymous="true" />
而CS的是
<add name="timezone" type="System.Double" defaultValue="0" />
所以要把CS的CommunityServerComponents\Componets\Profile.cs文件作相庆的更改,把int转为dobule

None.gif        public double Timezone 
ExpandedBlockStart.gif        
{
InBlock.gif            
get 
ExpandedSubBlockStart.gif            
{
InBlock.gif                
object obj;
InBlock.gif                
try //CS stores this as an double "timezone" (hours off GMT)
ExpandedSubBlockStart.gif
                {
InBlock.gif                    obj 
= GetObject("timezone");
InBlock.gif                    
return obj == null ? 0 : (double)obj;
ExpandedSubBlockEnd.gif                }

InBlock.gif                
catch //DNN stores this as an INT "TimeZone" (Minutes off GMT)
ExpandedSubBlockStart.gif
                {
InBlock.gif                    obj 
= GetObject("TimeZone");
InBlock.gif                    
return obj == null ? 0 : (double)(Convert.ToDouble(obj)/60);
ExpandedSubBlockEnd.gif                }

InBlock.gif                  
ExpandedSubBlockEnd.gif            }

InBlock.gif            
set 
ExpandedSubBlockStart.gif            
{
InBlock.gif                
try //CS stores this as an double "timezone" (hours off GMT)
ExpandedSubBlockStart.gif
                {
InBlock.gif                    
if ( value < -12 || value > 12)
InBlock.gif                        Set(
"timezone",0);
InBlock.gif                    
else
InBlock.gif                        Set(
"timezone",value );
ExpandedSubBlockEnd.gif                }

InBlock.gif                
catch //DNN stores this as an INT "TimeZone" (Minutes off GMT)
ExpandedSubBlockStart.gif
                {
InBlock.gif                    
if ( value < -12 || value > 12)
InBlock.gif                        Set(
"TimeZone",0);
InBlock.gif                    
else
InBlock.gif                        Set(
"TimeZone",Convert.ToInt32( value *60));
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }
 




    本文转自无心之柳.NET博客园博客,原文链接:http://www.cnblogs.com/9527/archive/2005/09/20/240339.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

其他文章