-1

サービス内の各メソッドの各リクエストの IP をログに記録するメソッドを Web サービス内に作成しようとしています。HttpContext を使用しようとしましたが、何をしても null 参照例外が返されます。リクエストから IP を取得し、SQL データベースに記録できるようにしたいと考えています。これは、ログに記録しようとしている方法の 1 つの例です。

public GetPL GPL(string code)
    {
        var db = new TDCDataContext();

        var pq = db.PROC_SELECT_GPL(code).ToList();

        //a bunch of nonsense

        //logging
        var ip = HttpContext.Current.Request.UserHostAddress;
        var method = GetMethod();
        db.PROC_INSERT_Log(ip, code, method, true, null, null);

        return stuff;
    }

私は間違った方向に向かっていますか?

4

1 に答える 1

1
                try
                {
                    var context = OperationContext.Current;
                    if (context != null)
                    {
                        var prop = context.IncomingMessageProperties;

                        if (prop != null && 
                            !string.IsNullOrEmpty(RemoteEndpointMessageProperty.Name) && 
                            prop.ContainsKey(RemoteEndpointMessageProperty.Name))
                        {
                            endpoint = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
                        }
                    }                    
                } 
                catch (Exception e)
                {
                    //log
                }

//endpoint.Address - ip address

于 2012-07-06T15:29:39.263 に答える