蝈蝈俊.net

-- 用随笔来记录自己的技术感触
随笔 - 597, 评论 - 4064, 引用 - 276

导航

关于

这里是我的技术Blog,下一代CSDN社区Blog在 http://blog.csdn.net/ghj1976/

标签

每月存档

最新留言

  • re:学习笔记:7种结构型设计模式简单对比
    <p>最新在家创业系统 ----刚从国外引进,市场巨大。 ----在家可经营所有国家生意,事业规模宏大。 ----不需求人与说服;不用放厚脸皮去推销。 ----极小投资;零风险;成...
    by jackielongteng(注册) on 2009/6/14 13:43:56
  • re:作用域
    <p>☆                    &deg;∵☆       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...
    by jackielongteng(注册) on 2009/6/14 13:03:25
  • re:Html标签嵌套对展示性能的影响
    <p><strong>所有的浏览器都按照你提到的浏览器解析Html规则来解析嘛?</strong></p>
    by Cola(注册) on 2009/6/12 23:07:28
  • re:Html5
    <p>目前来说,HTML5还只是一个梦想,呵呵:)</p>
    by 开心就好(注册) on 2009/6/11 16:31:54
  • re:多线程与SqlConnection.Close
    <p>好服月租型IT服务台,与你共成长! 月租型ITSM软件,注册即可免费体验! 详情请登录官方网站:<a href="http://www.servicezon.co...
    by qzhibo(注册) on 2009/6/3 15:14:21
  • re:多线程Singleton单件模式
    <pre><span style="color: #0000ff;">//Another way public</span> <sp...
    by Yaojian(注册) on 2009/4/22 14:02:35
  • re:Thread.Sleep(0)
    <p>学习了~</p>
    by shuitong888(注册) on 2009/4/8 14:29:24
  • re:Html标签嵌套对展示性能的影响
    <p>DIV固然好 但IE6,7,8 firefox,safari ....做美工的人要累死.</p>
    by ryq1(注册) on 2009/4/3 14:16:25
  • re:用.net 编码实现朗读文本的方法
    <p>我第一次 按键时 能听到声音,但是第二次按键时,没反应。网页一直在 loading.&nbsp;是什么原因?</p>
    by tracytang949(注册) on 2009/3/27 7:01:09
  • re:information_schema.routines与sysobjects
    <p>用sys.procedures多好。</p>
    by luke(注册) on 2009/3/16 16:45:49
  • re:SQL Server 2005 配置发送邮件
    <p>&lt;A href="<a href="http://www.3rt.info">http://www.3rt.info</...
    by ives007(注册) on 2009/2/26 16:47:00
  • re:推荐 Gemini 这个bug管理工具
    <p>你好!首先非常感谢推荐使用Gemini,这段时间在使用Gemini,有些问题想请教以下。</p> <p>1.Create Issue 以后,设置了Visib...
    by CowboyRyan(注册) on 2009/2/20 15:45:08
  • re:推荐 Gemini 这个bug管理工具
    <p>你好!首先非常感谢推荐使用Gemini,这段时间在使用Gemini,有些问题想请教以下。</p> <p>1.Create Issue 以后,设置了Visib...
    by CowboyRyan(注册) on 2009/2/20 15:32:06
  • re:虚机搭配NLB负载平衡时碰到"没有接口可用于安装新的群集"的解决方案
    <p>google newsid</p>
    by iads(注册) on 2009/2/13 17:25:07
  • re:try catch 与线程
    <p>确实是这样的。因为异常机制本质上是堆栈操作,而各线程的堆栈是独立的。</p>
    by st_szr(注册) on 2009/1/21 9:46:05
  • re:try catch 与线程
    <p>没啥啊,线程就是新启动了一个,当然异常不会影响到原有的线程了。</p> <p>你应该在线程里面合适的位置写上自己的捕获代码就行了。</p>
    by laozizhu(注册) on 2009/1/19 16:33:21
  • re:我的2008,征服天堂
    <p>蝈蝈,可惜我帮不了你啊!</p>
    by laozizhu(注册) on 2009/1/19 16:25:45
  • re:try catch 与线程
    <p>呃&hellip;&hellip;是这样的。可怎么处理呢?</p>
    by Anders Liu(注册) on 2009/1/19 11:58:05
  • re:我的2008,征服天堂
    <p>博主是不是去了师部 做了侦查营长呢?</p>
    by huobazi(注册) on 2009/1/9 14:15:33
  • re:我的2008,征服天堂
    <p>@ghj1976:看来真的危机了</p>
    by 开心就好(注册) on 2009/1/9 10:17:37
  • re: 网络带宽的单位
    不过传输的时候,往往还有压缩。
    by luke(匿名) on 2008/12/15 11:00:21
  • re: 网络带宽的单位
    除10不仅仅是为了方便,在传输中,往往加上控制位,所以一个字节往往需要10Bit.
    by 关门放狗(匿名) on 2008/12/13 16:01:30
  • re: 多缓存并存
    对跨进程甚至跨服务器缓存的性能比较怀疑,进程通信和跨服务器通信代价不菲。即使有已有进程外数据可用,如果考虑在进程做份缓存,定期再进程间同步是否更佳?
    by jinglecat(匿名) on 2008/12/12 18:00:05
  • re: 网络带宽的单位
    好像还有一个为了方便换算,厂家使用的是 除10的处理方式的说法:于是100Mb/sec = 100M / 10 = 10M Byte/sec 所以我通常都是用除10而不是除8来做运算的。
    by kentliu(匿名) on 2008/12/11 11:38:55
  • re: 网络带宽的单位
    又不是大S小s
    by luke(匿名) on 2008/12/10 12:04:50

广告

 

       上个星期六的时候(2月14日,情人节),来公司加班,把DearBook的程序从一台服务器搬到另外的两台服务器,在重新配置程序的时候,发现我写的发送email的函数,在服务进程里面调用没有问题,在ASP.net页面调用就有问题,为了这个问题,查了一下午,都没有解决,后来把发送Email的那部分,全部部署到服务程序里面。才算完成痛苦的情人节加班。

       对这个问题的原因一直怀疑是ASPNet帐户没有权限造成的,在网上找了不少资料,但是网上提供的方案,大多是给了ASP.net更多的权限,我不想给ASP.net更多的权限,就去动力营问微软技术工程师。以下是我整理自网上以及微软动力营的解决方案。

错误表现:Could Not Access CDO.Message Error
 
The transport lost its connection to the server.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
 
Exception Details: System.Runtime.InteropServices.COMException: The transport lost its connection to the server.

[HttpException (0x80004005): Could not access 'CDO.Message' object.]

原因:ASPNet用户没有对CDO.Message 的访问权限。


解决方案:

方案一:
try the steps below to grant the ASPNET the property permission.
1. Start -> Control Panel -> Administrative Tools -> Component Services.
2. Look for the desired COM component and add the ASPNET'user to the roles.
这种方案需要Com组件是进程外的组件,CDO组件是进程内的组件,因此无法使用。

方案二:

you can launch the aspnet_wp.exe with an account which has enough permission. Please try these steps:

1.    Find machine.config (usually under directory>\Microsoft.NET\Framework\v1.0.3705\CONFIG) and edit the
section. Change the "userName" attribute value to "SYSTEM".

2.    Edit the "web.config" file in the ASP .NET project. Add the following
line:
password=password> />

The user name you provide here need to have the permission to call the CDO
component.

3.    Restart the aspnet_wp.exe. You can also kill it in Task Manager. Then
aspnet_wp will start using SYSTEM account.

You also can impersonate ASPNET as a user having permission. For more
information about ASP.NET Impersonation please see:

http://msdn.microsoft.com/library/en-us/cpguide/html/cpconaspnetimpersonation.asp

http://support.microsoft.com/default.aspx?scid=KB;en-us;306158

这个方案给了ASPNet帐户较大的权限。

以上两个资料参考来源:

http://groups.google.com/groups?q=CDO.Message+SmtpMail.Send(&hl=zh-CN&lr=&ie=UTF-8&oe=UTF-8&selm=aLZQAD45CHA.1536%40cpmsftngxa08.phx.gbl&rnum=3

方案三:

CDO组件是进程内的组件,因此要建立进程内的组建,只需要NTFS权限和对注册表的访问。无需对组建服务进行配置。

您可以尝试按如下步骤操作:

1。给ASPNET 账户访问HKCR/TypeLib/{cdo clsid} (Microsoft CDO for Windows 2000-CDOSYS)的权限,这样ASPNET 账户就可以调用CREATEOBJECT ("CDO.Message")
(cdo clsid可以从HKCR/CLSID下获得)

2。 给ASPNET账户添加如下权限:
给如下目录添加NTFS文件权限:C:\Inetpub\mailroot\pickup folder


您可以参考如下文章:
XIMS: Minimum NTFS Permissions Required to Use CDONTS
http://support.microsoft.com/?id=260985

这个方案给了ASPNet帐户够用的权限。

打印 | 张贴于 2004-02-17 11:25:00 | Tag:.net 编程心得

留言反馈

#seocontest2008 编辑
Hello,
Thanks for this article.
Can i put this article to my site?
Thanks again.
2008-02-07 20:05:00 | [匿名用户:info@seocontest2008.com]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
thanks
2008-02-06 16:57:00 | [匿名用户:Sınıf dizisi]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
thanks
2008-02-06 16:56:00 | [匿名用户:Sınıf dizisi]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
N?CE S?TE
2008-02-05 03:56:00 | [匿名用户:şarkı indir]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
N?CE S?TE
2008-02-05 03:54:00 | [匿名用户:mp3 indir]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
thanks you
2008-02-05 03:53:00 | [匿名用户:mp3 indir]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
我想 找回我的EMIL
2008-02-02 15:05:00 | [匿名用户:adil]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
thank you article. nice site.s
2008-01-31 19:43:00 | [匿名用户:cephe reklam]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
very good great article
2008-01-17 21:44:00 | [匿名用户:kiremit irmiği]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
thank you admin. nice site.
2008-01-16 09:00:00 | [匿名用户:ensest hikayeler]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
Thanks ... !!
2008-01-09 10:23:00 | [匿名用户:mp3]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
Thanks...
2007-12-20 17:39:00 | [匿名用户:mp3 indir]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
Thanks...
2007-12-20 17:39:00 | [匿名用户:mp3 indir]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
hatanks joykode.com
2007-11-22 04:30:00 | [匿名用户:küresel ısınmaya hayır]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
方案三中的给权限可行
2007-10-23 20:14:00 | [匿名用户:liyl]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
我也发现了这样的问题,但试了好多个方法都没有办法解决,方案正在寻找中。。。。
2007-04-09 09:57:00 | [匿名用户:ASP.net]
#发送Email时候,可能导致异常:未能访问“CDO.Message”对象,的几种情况整理 编辑
整理可能导致 could not access 'cdo.message' object 异常的几种情况,比较全,但不是万能的哦。。。
2007-04-06 14:03:00 | [匿名用户:winderxp]
#发送Email时候,可能导致异常:未能访问“CDO.Message”对象,的几种情况整理 编辑
整理可能导致 could not access 'cdo.message' object 异常的几种情况,比较全,但不是万能的哦。。。
2007-04-06 14:03:00 | [匿名用户:winderxp]
#re: 使用ASPNET帐号发送Email的权限问题 编辑
我也写了一个邮件发送程序,运行没有问题,可是我检查我的邮箱发现根本就收不到我发送的测试文件,请问这是为什么?
我查了一些资料,说可能是我的25端口被别的应用程序占了,所以失败。
如果能给些建议,请发邮件到
evpo7887@yahoo.com.cn

谢谢
2006-10-16 11:18:00 | [匿名用户:jiaoxiaoxing]
#re: 使用ASPNET帐号发送Email的权限问题 编辑
想问一下,如何调用OE发送邮件?
2006-09-16 07:33:00 | [匿名用户:游客]
#re: 使用ASPNET帐号发送Email的权限问题 编辑
我也遇到那个问题了拉,但是试了所有的方法,似乎行不通啊.老是报错
fdfdsaSystem.Web.HttpException: 未能访问“CDO.Message”对象。 ---> System.Reflection.TargetInvocationException: 调用的目标发生了异常。 --->
应该怎么玩咯??
2006-04-28 20:29:00 | [匿名用户:林霖]
#关于英文操作系统下发送邮件,附件名称中文的问题 编辑
我在使用MailMessage 发送邮件的时候,在英文操作系统下,当附件的名称为中文时,发送不成功,通过对错误信息跟踪发现如下:请问该如何解决?


1、.Message : "Could not access 'CDO.Message' object." 这是错误的提示信息;
2、.StackTrace : 以下是跟踪信息;
at System.Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String methodName, Object[] args)\r\n
at System.Web.Mail.CdoSysHelper.Send(MailMessage message)\r\n
at System.Web.Mail.SmtpMail.Send(MailMessage message)\r\n
at UFSoft.U8.CRM.Mail.SystemMail.SendMail() in d:\\u861_crm_c#_vb\\u8_crm861\\crm861\\c#\\src\\common\\mail\\systemmail.cs:line 222" string
2005-07-04 10:51:00 | [匿名用户:AtroCity]
#re: 使用ASPNET帐号发送Email的权限问题 编辑
还有一个,就是当无法连接服务器的时候,也会误报为无法访问CDO.Message对象,最好跟踪到InnerException看一眼
2005-06-23 15:34:00 | [匿名用户:木先生]
#发送Email时候,可能导致异常:未能访问“CDO.Message”对象,的几种情况整理 编辑

我很早之前的Blog,说过可能导致 could not access 'cdo.message' object 异常的几种情况。今天新有发现几种情况下,会报这个错误,特整理,导致这个异常的情况: ...
2005-03-15 21:15:00 | [匿名用户:liuliu's Blog]
#re: 使用ASPNET帐号发送Email的权限问题 编辑
我想在Window服务中实现发送Email

Public Function Send()

Dim objMailMessage As MailMessage = New MailMessage

Dim strFrom As String = ConfigurationSettings.AppSettings("MailFrom")
Dim strMailServer As String = ConfigurationSettings.AppSettings("MailServer")

Try
With objMailMessage
.From = strFrom
.To = m_sTo
.Subject = m_sSubject
.Body = m_sBody
.BodyEncoding = System.Text.Encoding.UTF8
End With

SmtpMail.SmtpServer = strMailServer
SmtpMail.Send(objMailMessage)

Catch ex As Exception
Common.ServiceLog(ex.Message)
End Try
End Function
**********************************************************************
这是VB.net写的发送邮件的代码,在Windwo应用程序中没有问题,但是在window服务中却不能执行(无法访问CDO),请各位高手们指点指点。
2005-01-07 11:54:00 | [匿名用户:lei]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
哇,你是微软工程师?? 回答我那个问题的帅哥??
2004-02-25 11:05:00 | [匿名用户:ghj1976]
#回复: 使用ASPNET帐号发送Email的权限问题 编辑
方案三,
这个是我写的阿。。
2004-02-25 10:57:00 | [匿名用户:omale]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.1.0