简体   繁体   English

在IIS 7.0中托管Web服务(不是WCF)

[英]Hosting webservice in IIS 7.0 (Not WCF)

I have written a webservice in C# and am trying to host it on IIS 7.0. 我已经用C#编写了一个Web服务,并试图将其托管在IIS 7.0上。 Consider the following code, this code works fine and can be hosted on IIS 7.0 with no problems: 考虑以下代码,此代码可以正常工作,并且可以毫无问题地托管在IIS 7.0上:

using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Web;
using System.Web.Services;
using VMware;

namespace vmareService
{
/// <summary>
/// Summary description for Service1
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the     following line. 
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{

    [WebMethod]

    public void logintoVmware(string URL, string username, string password)
          {
        VMware.Vim.VimClient client = new VMware.Vim.VimClient();

    }

}
}

Now if I want this method to return my session id, I change my code to following: 现在,如果我希望此方法返回我的会话ID,则将代码更改为以下内容:

using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Web;
using System.Web.Services;
using VMware;

namespace vmareService
{
/// <summary>
/// Summary description for Service1
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the     following line. 
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{

    [WebMethod]

    //public void logintoVmware(string URL, string username, string password)
    public VMware.Vim.UserSession logintoVmware(string URL, string username, string password)
    {
        VMware.Vim.VimClient client = new VMware.Vim.VimClient();
        VMware.Vim.UserSession session;
        session = client.Login(URL, username, password);
        return session;

    }

}
}

Now while I have referenced the vmware.vim.dll in my code and have also included the file in my folder hosted on IIS 7.0 ,, i get the following error message: 现在,尽管我在代码中引用了vmware.vim.dll并将文件也包含在IIS 7.0托管的文件夹中,但出现以下错误消息:

Server Error in '/vmService' Application.

Could not load file or assembly 'VMware.Vim, Version=5.0.0.0, Culture=neutral,     PublicKeyToken=10980b081e887e9f' or one of its dependencies. The system cannot find the file  specified.

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.IO.FileNotFoundException: Could not load file or assembly 'VMware.Vim, Version=5.0.0.0, Culture=neutral, PublicKeyToken=10980b081e887e9f' or one of its dependencies. The system cannot find the file specified.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'VMware.Vim, Version=5.0.0.0, Culture=neutral, PublicKeyToken=10980b081e887e9f' could not be loaded.


WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value   [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value    [HKLM\Software\Microsoft\Fusion!EnableLog].

Stack Trace: 


[FileNotFoundException: Could not load file or assembly 'VMware.Vim, Version=5.0.0.0,      Culture=neutral, PublicKeyToken=10980b081e887e9f' or one of its dependencies. The system cannot find the file specified.]
System.Signature._GetSignature(SignatureStruct& signature, Void* pCorSig, Int32 cCorSig, IntPtr fieldHandle, IntPtr methodHandle, IntPtr declaringTypeHandle) +0
 System.Signature..ctor(RuntimeMethodHandle methodHandle, RuntimeTypeHandle declaringTypeHandle) +236
System.Reflection.RuntimeMethodInfo.get_Signature() +91
System.Reflection.RuntimeMethodInfo.get_ReturnType() +19
System.Reflection.RuntimeMethodInfo.ToString() +36
System.Web.Services.WebMethodReflector.GetMethods(Type type) +255
System.Web.Services.Description.ServiceDescriptionReflector.Reflect(Type type, String  url) +77
System.Web.Services.Protocols.DocumentationServerType..ctor(Type type, String uri) +203
System.Web.Services.Protocols.DocumentationServerProtocol.Initialize() +388
System.Web.Services.Protocols.ServerProtocol.SetContext(Type type, HttpContext context,  HttpRequest request, HttpResponse response) +75
System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing) +143

[InvalidOperationException: Unable to handle request.]
System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext  context, HttpRequest request, HttpResponse response, Boolean& abortProcessing) +458971
System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type,   HttpContext context, HttpRequest request, HttpResponse response) +285

[InvalidOperationException: Failed to handle request.]
System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response) +401754
System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath) +281
System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated) +89
 System.Web.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +425
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&  completedSynchronously) +263

Version Information: Microsoft .NET Framework Version:2.0.50727.5456; ASP.NET      Version:2.0.50727.5456

any help would be appreciated.. 任何帮助,将不胜感激..

Thanks 谢谢

Pasted from Comment: 从评论粘贴:

You should make sure this file is in your /bin folder. 您应该确保此文件位于/ bin文件夹中。 If it is, then you should investigate what its potential dependencies may be. 如果是这样,则应调查其潜在依赖关系。 Remember, just because this file is there doesn't mean all of its dependent dlls are available. 请记住,仅仅因为该文件存在并不意味着其所有依赖的dll都可用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM