0

C# で Web サービスを作成し、IIS 7.0 でホストしようとしています。次のコードを検討してください。このコードは問題なく動作し、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();

    }

}
}

このメソッドがセッション 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;

    }

}
}

ここで、コードで 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

任意の助けをいただければ幸いです..

ありがとう

4

1 に答える 1

0

コメントから貼り付け:

このファイルが /bin フォルダーにあることを確認してください。そうである場合は、その潜在的な依存関係が何であるかを調査する必要があります。このファイルが存在するからといって、依存するすべての dll が利用できるわけではないことに注意してください。

于 2012-08-17T18:01:53.553 に答える