版主storm97、xch74 及微软技术支持等各位大侠,请大家帮忙,用CDO.Person,CDOEXM.IMailboxStore创建带邮箱的用户的问题。

Karl_Mx 2002-05-25 01:04:41
诸位大侠好!
有个困扰我多日的问题请大家一定帮忙,我把问题也尽可能描述的详细些。

A.环境:
1.服务器 WINDOWS 2000ADVANCED SERVER + EXCHANGE 2000 SERVER + .NET Framework + .NET服务器端组件
2.客户端 WINDOWS 2000 SERVER + .NET Framework + VS.NET

B.要求
在客户端用WEB页创建带邮箱的用户。

C.我的方案
在服务器的IIS站点下创建了一个Web Service,(引用了ActiveDs,CDO,CDOEXM等),全部代码如下.

(服务器端IIS服务器名: erp ,EXCHANGE服务器名: erp ,域名: sunrise.com)
我一系统管理员的身份登录服务器,调试这个Web Service

Imports System.Web.Services
Namespace sunerp.service
<WebService(Namespace:="http://sunerp.service/")> _
Public Class Service1
Inherits System.Web.Services.WebService

#Region " Web 服务设计器生成的代码 "

Public Sub New()
MyBase.New()

'该调用是 Web 服务设计器所必需的。
InitializeComponent()

'在 InitializeComponent() 调用之后添加您自己的初始化代码

End Sub

'Web 服务设计器所必需的
Private components As System.ComponentModel.IContainer

'注意:以下过程是 Web 服务设计器所必需的
'可以使用 Web 服务设计器修改此过程。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
End Sub

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
'CODEGEN: 此过程是 Web 服务设计器所必需的
'不要使用代码编辑器修改它。
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

#End Region

<WebMethod()> Public Function CreateUserwithMailbox (ByVal strFirstName As String, ByVal strLastName As String) As Boolean

Dim prsmbx As CDO.Person
Dim mbx As CDOEXM.IMailboxStore
Dim strAlias As String
Dim strLDAP As String

'Try

strAlias = strFirstName & Left(strLastName, 2)

' LDAP URL to the new user
strLDAP = "LDAP://erp/cn=" & strFirstName & " " & strLastName
strLDAP = strLDAP & ",ou=test,dc=sunrise,dc=com"

' Create the new user account
prsmbx = New CDO.Person()
With prsmbx
.Fields("ObjectClass").Value = "user"
.FirstName = strFirstName
.LastName = strLastName
.Fields("userAccountControl").Value = _
ActiveDs.ADS_USER_FLAG.ADS_UF_NORMAL_ACCOUNT
.Fields.Update()
.DataSource.SaveTo(strLDAP, , , , , _
"administrator", "mazg")
End With

mbx = prsmbx

mbx.CreateMailbox( _
"LDAP://erp/CN=Mailbox Store (erp)," & _
"CN=First Storage Group,CN=InformationStore," & _
"CN=erp,CN=Servers,CN=First Administrative Group," & _
"CN=Administrative Groups,CN=Organization," & _
"CN=Microsoft Exchange,CN=Services,CN=Configuration," & _
"DC=sunrise,DC=com")

With prsmbx
.Email = "SMTP:" & strAlias & "@sunrise.com"
.Fields("mailnickname").Value = strAlias
.Fields.Update()
.DataSource.Save()
End With

mbx = Nothing
prsmbx = Nothing
CreateUserwithMailbox = True
' Catch
' CreateUserwithMailbox = False
' End Try
End Function
End Class
End Namespace


D.问题
1.错误出现在 mbx.CreateMailbox( "LDAP://erp/...............")这儿.(我用断点找到的)错误提示:您要访问的网页有问题,无法显示。HTTP 500 - 内部服务器错误
2.如果将此Web Service 创建在客户端IIS站点下,错误出现在mbx = prsmbx 这儿错误提示相同。
3.此段代码的VB6.0 格式在服务器上运行正常,能创建带邮箱的用户。

请问各位大侠,我的这是语法问题、设置、还时原则上的错误,该如何解决。
谢谢各位!!!学生承教。



...全文
277 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
徐春华 2002-08-28
  • 打赏
  • 举报
回复
这个问题在sp1时是没有的,但在装了SP2后出现了
考虑装SP3,可解决此问题.

不是你的错,是系统的问题.

或不用系统的接口,直接对objUser进行相应的操作即可,
这样做我在SP2下是成功的.
ddalone 2002-08-26
  • 打赏
  • 举报
回复
前一段时间我换了个项目做,呵呵
现在都过去3个月了,我想问题已经不是问题了吧,呵呵

不过我现在也在做Exchange不放在开发或者WebSerivice机器上的东东
就是两者分离,有好的想法希望在这里一起分享!
Karl_Mx 2002-05-27
  • 打赏
  • 举报
回复
谢谢 ddalone 、 AChu !!
请问ddalone 你的环境是否跟我一样,你的Exchange 2000 server 是否安装在你开发的机器上?
请继续指点!!!
ddalone 2002-05-26
  • 打赏
  • 举报
回复
我用C#是成功了的,先创建用户,然后再创建信箱

创建信箱如下:

DirectoryEntry container, user;
CDOEXM.IMailboxStore mailbox;

container = new DirectoryEntry("LDAP://cn=users," + DomainName);
user = container.Children.Add("CN=" + fullName, "user");

.....................(创建用户)




mailbox = (IMailboxStore)user.NativeObject;

mailbox.CreateMailbox("LDAP://" + ServerName +"/CN=Mailbox Store (" +
ServerName +
"),CN=First Storage Group,CN=InformationStore,CN=" +
ServerName +
",CN=Servers,CN=First Administrative Group," +
"CN=Administrative Groups,CN=First Organization," +
"CN=Microsoft Exchange,CN=Services," +
"CN=Configuration," + DomainName);
user.CommitChanges();
Response.Write("创建用户以及信箱成功!!");
AChu 2002-05-26
  • 打赏
  • 举报
回复
是不是你的IIS没有关闭匿名访问?
Karl_Mx 2002-05-25
  • 打赏
  • 举报
回复
大家有空讨论讨论,我在关注。

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧