嗨我正在使用HttpModule來調用WebAPI。 目前,該解決方案在系統本地工作,但一旦我發表在服務器代碼,它不能使API call.Here是示例代碼:使用IHTTP模塊的Web Api調用
public class AppModule: IHttpModule
{
public void Init(HttpApplication httpApp)
{
httpApp.BeginRequest += OnBeginRequest;
httpApp.EndRequest += OnEndRequest;
httpApp.PreSendRequestHeaders += OnHeaderSent;
}
public void OnBeginRequest(Object sender, EventArgs e)
{
try
{
var httpApp = (HttpApplication)sender;
if (httpApp.Request.Path.StartsWith("/media/")) return;
string a = httpApp.Request.ServerVariables["ID"];
if (String.IsNullOrEmpty(a))
{
a = System.Configuration.ConfigurationManager.AppSettings["ID"];
}
var absolutepath = httpApp.Request.Url.AbsolutePath;
var values = new Dictionary<string, object>
{
{ "ID", a },
{ "Browser",httpApp.Request.Browser["Type"] },
{ "Url",httpApp.Request.Url.Scheme + "://" + httpApp.Request.Url.Authority + absolutepath},
{ "OperatingSys",httpApp.Request.Headers["User-Agent"] },
{ "IPAddss",httpApp.Request.UserHostAddress },
{ "LDate",System.DateTime.Now.ToString() },
};
var serializer = new JavaScriptSerializer();
var appData = serializer.Deserialize<DataVO>(serializer.Serialize(values));
AppModuleVO objAppModuleVO = new AppModuleVO();
//AppModuleVo has all the properties.
objAppModuleVO.WebUrl = System.Configuration.ConfigurationManager.AppSettings["APIURL"] + MethodCall;
objAppModuleVO.objDataVo = appData;
ThreadPool.QueueUserWorkItem(new WaitCallback(HandlePostRequest), objAppModuleVO);
}
catch (Exception ex)
{
}
}
}
我已經註冊在web.config中的相同因爲
<system.web>
<httpModules>
<add name="AppModule" type="Fighter.Modules.AppModule"/>
</httpModules>
</system.web>
<system.webServer>
<modules>
<add name="AppModule" type="Fighter.Modules.AppModule"/>
</modules>
</system.webServer>
我不確定在服務器中發佈代碼後是否需要在IIS服務器上進行任何更改或註冊。 注:我也在服務器上部署了API,並提供了正確的路徑,因爲其他方法可以調用排除的相同API。請幫助。這個問題似乎是因爲IIS目前我正在使用管理流水線模式下的IIS 7.0作爲CLASSIC。有關此問題的任何解決方法。
什麼失敗?有一個問題。它是否在那裏? – Asken
@Asken當我在本地運行解決方案時,它的工作原理是在服務器中發佈代碼後出現問題。 –
需要更多數據...它可以是任何東西。你必須看看iis日誌。你也可以嘗試使一個死的簡單模塊返回類似字符串的東西,看它是否工作。如果打電話給外部網站,您可能需要確保您有權這樣做。如果你可以控制服務器,你可以嘗試設置''。 –
Asken