版主storm97、xch74 及微软技术支持等各位大侠,请大家帮忙,用CDO.Person,CDOEXM.IMailboxStore创建带邮箱的用户的问题。
诸位大侠好!
有个困扰我多日的问题请大家一定帮忙,我把问题也尽可能描述的详细些。
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 格式在服务器上运行正常,能创建带邮箱的用户。
请问各位大侠,我的这是语法问题、设置、还时原则上的错误,该如何解决。
谢谢各位!!!学生承教。