Com组件使用的问题!非常急,感谢各位帮忙

007Delphi 2006-12-27 10:19:19
我在.NET里面引用了一个已经注册的DLL文件,在初始化该控件的时候报错误
源代码:
if (!IsPostBack)
{
string ID = Request.QueryString["ID"];
GW = new JZ_GongWenChuLi_GongWenBLL(Convert.ToInt64(ID));
// DocName = Request.Url.ToString().Replace(Request.RawUrl, "/") + System.Configuration.ConfigurationManager.AppSettings["ListFileUrl"] + "?GongWenID=" + GW.NeiRongBianHao;
DocName = System.Configuration.ConfigurationManager.AppSettings["SaveFilePath"] + "1.doc";
CebName = System.Configuration.ConfigurationManager.AppSettings["SaveFilePath"] + "1.ceb";
LogName = System.Configuration.ConfigurationManager.AppSettings["SaveFilePath"] + "1.log";
IniName = System.Configuration.ConfigurationManager.AppSettings["SaveFilePath"] + "1.ini";
byte[] myfile;
myfile = mybll.GetFileBodys(GW.NeiRongBianHao);

if (myfile != null)
{
try
{
System.IO.File.Delete(DocName);
}
catch { }
System.IO.FileStream SW = System.IO.File.Create(DocName);
SW.Write(myfile, 0, myfile.Length);
SW.Flush();
SW.Close();
}
MAKERCOMLib.MakerExtClass MAC = new MAKERCOMLib.MakerExtClass();
int rot = MAC.BeginMaker("ApabiMaker2.6");
rot = MAC.SingleFileConvert(DocName,CebName,"CEB文件",LogName,IniName);
}




错误:
检索 COM 类工厂中 CLSID 为 {3228A3B0-70B3-11D7-A0D9-00E04C4574A9} 的组件时失败,原因是出现以下错误: 80070005。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {3228A3B0-70B3-11D7-A0D9-00E04C4574A9} 的组件时失败,原因是出现以下错误: 80070005。

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。

要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

源错误:


行 42: SW.Close();
行 43: }
[红色字体:]
行 44: MAKERCOMLib.MakerExtClass MAC = new MAKERCOMLib.MakerExtClass();
行 45: int rot = MAC.BeginMaker("ApabiMaker2.6");
行 46: rot = MAC.SingleFileConvert(DocName,CebName,"CEB文件",LogName,IniName);

错误在44行

请问如何解决该问题
此问题不是DCOM的注册的权限问题,我在Dcomcnfg中没有找到该组件,也无法给该孔件进行权限修改
请问我该如何做,要的很急

...全文
177 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
007Delphi 2006-12-29
  • 打赏
  • 举报
回复
果然是权限问题,但还是不能成功,日志文件生成了,日志的错误显示是在生成临时文件的时候无发打开或者创建日志文件,估计还是权限问题
yangyupeng521 2006-12-27
  • 打赏
  • 举报
回复
你把你的dll放到c盘的根目录下,执行一下注册,就应该能注册上了。(如果你以前将dll放到其他盘中,或很深的目录,就很有可能提示成功,但并没注册成功!)
鲁虾 2006-12-27
  • 打赏
  • 举报
回复
组件没注册吧
007Delphi 2006-12-27
  • 打赏
  • 举报
回复
没有找到该控件
007Delphi 2006-12-27
  • 打赏
  • 举报
回复
请大家帮帮忙啊,工作进行到这里就卡住了
shalen520 2006-12-27
  • 打赏
  • 举报
回复
权限不足

开始-->运行-->dcomcnfg.exe,打开组件配置,找到dcom,找到要调用的组件,然后点击右键,在属性的安全选项中设置访问权限
cpp2017 2006-12-27
  • 打赏
  • 举报
回复
先试试身份模拟,如果问题ok则证明完全是权限的问题,如果不是,就再另想办法。 <identity impersonate="true" userName="用户名" password="密码"></identity>
veigd 2006-12-27
  • 打赏
  • 举报
回复
没用过,帮顶!!
yangyupeng521 2006-12-27
  • 打赏
  • 举报
回复
你就加上everyone吧,不然好像都不太好使!
007Delphi 2006-12-27
  • 打赏
  • 举报
回复
感谢大家,不是你们说的问题,我已经找到原因了
但还是有问题,在运行的时候出现一个未知错误
但我调试的时候又没问题
因此我初步认为是权限的问题,因为调试的权限比匿名权限大多了
这个错误在以下地方出现
rot = MAC.SingleFileConvert(DocName, CebName, "网上浏览", LogName, IniName);
即该组件在转换文件的时候要把转换都的问题写到某个文件夹中去,同时还有其他的文件
现在就是在调试的时候转换成功并且生成文件成功
但在正常访问的时候没有生成任何文件,也报出错误
请问大家有什么解决办法吗?
该文件夹有admin、来宾、guest、aspnet等用户的权限,不知道还要加上什么权限

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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