权限问题,请高手帮忙

007Delphi 2006-12-27 03:53:51
MAKERCOMLib.MakerExtClass MAC = new MAKERCOMLib.MakerExtClass();
int rot = MAC.BeginMaker("ApabiMaker2.6");
rot = MAC.SingleFileConvert(DocName, CebName, "网上浏览", LogName, IniName);

其中MAKERCOMLib是引用的一个注册了的组件
MAC.SingleFileConvert(DocName, CebName, "网上浏览", LogName, IniName)该函数的功能是将DocName文件转换成CEB的文件并存入到CebName中去
调试的时候没问题,正常运行就错误
因此我初步认为是权限的问题,因为调试的权限比匿名权限大多了
这个错误在以下地方出现
rot = MAC.SingleFileConvert(DocName, CebName, "网上浏览", LogName, IniName);
即该组件在转换文件的时候要把转换都的文件写到某个文件夹中去,
现在就是在调试的时候转换成功并且生成文件成功
但在正常访问的时候没有生成任何文件,也报出错误
请问大家有什么解决办法吗?
该文件夹有admin、来宾、guest、aspnet、everyone等用户的权限,不知道还要加上什么权限
...全文
197 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
007Delphi 2006-12-27
  • 打赏
  • 举报
回复
找到错误的原因了
启动Word失败,可能没有安装Word
这个错误是该组建报出的错误
007Delphi 2006-12-27
  • 打赏
  • 举报
回复
自己顶下
007Delphi 2006-12-27
  • 打赏
  • 举报
回复
晕,没有人知道啊
这个非常急呀
kason_j 2006-12-27
  • 打赏
  • 举报
回复
友情幫頂
007Delphi 2006-12-27
  • 打赏
  • 举报
回复
谁来帮帮我啊,知道问题的所在缺做不出来是个很郁闷的事情
007Delphi 2006-12-27
  • 打赏
  • 举报
回复
感谢楼上,这个方法我一开始就用了,没有效果
cpp2017 2006-12-27
  • 打赏
  • 举报
回复
你先用身份模拟试试。 在 web.config中加上 <identity impersonate="true" userName="用户名" password="密码"></identity>
007Delphi 2006-12-27
  • 打赏
  • 举报
回复
所有代码:
Hashtable RetHt = new Hashtable();
RetHt.Add("0", "操作成功");
RetHt.Add("100", "Maker版本信息错误");
RetHt.Add("102", "注册表读取失败");
RetHt.Add("103", "不能启动maker");
RetHt.Add("105", "没有初始化Maker");
RetHt.Add("110", "本机下没有安装 Maker");
RetHt.Add("120", "没有找到指定的Maker版本");
RetHt.Add("130", "Maker版本字符串无效");
RetHt.Add("140", "Maker版本太旧");
RetHt.Add("150", "Maker正在运行");
RetHt.Add("200", "DLL调用失败");
RetHt.Add("201", "DLL释放失败");
RetHt.Add("300", "被转换源文件不存在");
RetHt.Add("310", "被转换源文件扩展名有误");
RetHt.Add("320", "生成的CEB文件路径不存在");
RetHt.Add("330", "CEB文件创建失败");
RetHt.Add("340", "目标CEB文件不能被覆盖");
RetHt.Add("350", "被转换脚本文件不存在");
RetHt.Add("351", "工作单文件的后缀名错误");
RetHt.Add("355", "工作单文件写入UNICODE失败");
RetHt.Add("360", "工作单文件生成失败");
RetHt.Add("370", "工作单文件移动失败");
RetHt.Add("400", "Maker2.0 模板名不能为空");
RetHt.Add("420", "Maker2.0 指定模板不存在存在");
RetHt.Add("421", "Maker2.1 指定模板不存在存在");
RetHt.Add("510", "指定的文件名参数无效");
RetHt.Add("520", "指定的模板名无效");
RetHt.Add("530", "指定的JOB文件格式不符合要求");
RetHt.Add("850", "转换过程失败");
RetHt.Add("1300", "当前没有错误信息");
RetHt.Add("1500", "生成LOG文件失败");
RetHt.Add("1600", "生成转换信息文件失败");
RetHt.Add("4000", "人品问题");
RetHt.Add("10000", "无效的参数");
RetHt.Add("20000", "未命名的错误");
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);
System.IO.File.Delete(CebName);
System.IO.File.Delete(LogName);
System.IO.File.Delete(IniName);
}
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");
if (rot == 0)
{
rot = MAC.SingleFileConvert(DocName, CebName, "网上浏览", LogName, IniName);
if (rot == 0)
{
System.IO.FileStream fs = new System.IO.FileStream(CebName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
byte[] files = new byte[fs.Length];
for (int i = 0; i < fs.Length; i++)
fs.Read(files, i, 1);
if (GW.CEBBianHao == null)
{
string CEBBH = new PublicBLL().SaveGongWen(files);
if (CEBBH != "")
{
Hashtable param = new Hashtable();
param.Add("CEBBianHao", CEBBH);
new JZ_GongWenChuLi_GongWenBLL().UpdateGongWen(param, "BianHao", ID);

}
}
else
new PublicBLL().SaveGongWen(files, GW.CEBBianHao);

// Response.Redirect(Request.Url.ToString().Replace(Request.RawUrl, "/") + System.Configuration.ConfigurationManager.AppSettings["ListFileUrl"] + "?GongWenID=" + CEBBH+"&names="+GW.BianTi+".ceb");
}
tishi.Text = RetHt[rot.ToString()].ToString();
}
else
tishi.Text = RetHt[rot.ToString()].ToString();
007Delphi 2006-12-27
  • 打赏
  • 举报
回复
基本上用户都加上去了,也给了很多权限,还有这个组件虽然注册了但不能在DCOM中找到
这个组件是方正CEB的一个DLL文件,需要通过网络将文件转换成CEB然后存入数据库
我想不通的是调试可以,但正常运行不行,很奇怪的一个问题
007Delphi 2006-12-27
  • 打赏
  • 举报
回复
我是操作服务器上面的文件夹,这段代码在CS页面中运行的
yangyupeng521 2006-12-27
  • 打赏
  • 举报
回复
加上everyone用户试试看
kaixin110 2006-12-27
  • 打赏
  • 举报
回复
不建議這樣做,因為COM操作的本地目錄,不是服務器上的文件夾,因為我原來的一個朋友在用ActiveX處理地圖的時候﹐實際上你可以使用cgi試一下,!
你也可以讓asp.net建文件夾或文件,com對文件操作有很多的限制性!
謝謝!
cpp2017 2006-12-27
  • 打赏
  • 举报
回复
io权限如果有的话,应该就是com权限的问题 在服务器上运行dcomcnfg 组件服务->计算机->我的电脑->dcom配置,找到这个组件. 属性 ->安全 给aspnet(iis5.0) 或 network service (iis6) 用户所有(三个)权限
wslinfeng 2006-12-27
  • 打赏
  • 举报
回复
可能是文件没及时关闭的原因,
重新启动下机器问题直接运行 问题去除的话,就可以确定是这个毛病了,然后再改代码
007Delphi 2006-12-27
  • 打赏
  • 举报
回复
同时我在错误的前面有这样的操作是可以的,代码如下:
try
{
System.IO.File.Delete(DocName);
System.IO.File.Delete(CebName);
System.IO.File.Delete(LogName);
System.IO.File.Delete(IniName);
}
catch { }
System.IO.FileStream SW = System.IO.File.Create(DocName);
SW.Write(myfile, 0, myfile.Length);
SW.Flush();
SW.Close();

62,243

社区成员

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

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

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

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