各位大侠帮下忙,关于条码软件barTender的调用

时间:2021-08-13 19:08:16
本人写了一个小程序,通过webservice调用barTender出现以下异常。

System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> 
System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {B9425246-4131-11D2-BE48-
004005A04EDF} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。 (异常来自 
HRESULT:0x80070005 (E_ACCESSDENIED))。
   在 BaseService.print() 位置 e:\软件项目\条码系统\扫描枪\Server\App_Code\BaseService.cs:行
号 35
   --- 内部异常堆栈跟踪的结尾 ---

单独调试webservice可以运行成功,
可是通过我在扫描枪上的一个程序访问webservice运行就不行了,我在本机上做一个程序访问webservice也不行。

以下是webservice代码,单独运行webservice可以打印
    [WebMethod(Description = "打印", EnableSession = true)]
    public void print()
    {
        BarTender.Application btApp = new BarTender.Application();
        BarTender.Format btFormat = btApp.Formats.Open(@"E:\btw\test.btw", false, "");
        btFormat.PrintSetup.IdenticalCopiesOfLabel = 1;
        btFormat.PrintSetup.NumberSerializedLabels = 1;
        btFormat.PrintOut(false, false);
        btApp.Quit(BarTender.BtSaveOptions.btDoNotSaveChanges);
    }

以下是客户端代码,调用webservice中的代码就报上面的异常。
    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            SolarServer.BaseService server = new Client.SolarServer.BaseService();
            server.print();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

3 个解决方案

#1


自己顶一下,哪位大侠能帮帮忙啊

#2


test.btw 看看是否只读。

#3


引用 2 楼 kongwei521 的回复:
test.btw 看看是否只读。


不是只读的

#1


自己顶一下,哪位大侠能帮帮忙啊

#2


test.btw 看看是否只读。

#3


引用 2 楼 kongwei521 的回复:
test.btw 看看是否只读。


不是只读的