0

この RIA サービスの URL があります。

 http://192.168.2.100/MegaSystem/Services/RIAServicesLibraryMain-Web-Version_1_0-DomainService.svc

そのため、アプリケーションの構成ウィンドウでこの URL を何らかの形で検証する必要があります。

私はこの方法を使用してそれを行います:

private bool KickServices(string serviceUrl)
        {
            bool result = false;

            var request = WebRequest.Create(serviceUrl) as HttpWebRequest;
            if (request != null)
            {
                request.ContentType = "application/xml";
                request.Method = "GET";
            }

            if (request != null)
            {
                var response = request.GetResponse() as HttpWebResponse;
                if (response != null && response.StatusCode == HttpStatusCode.OK)
                {
                    result = true;
                }
            }

            return result;
        }

のような間違った URL を使用した場合の主な問題

http://192.168.2.100/MegaSystem/Services/RIAServicesLibraryMain-Web-Version_1_0-DomainService_SHIT_SHIT_SHIT.svc

とにかくTRUEを返します...

RIA サービスの URL を検証する正しい方法を見つけるのを手伝ってください。

ありがとうございました!

4

1 に答える 1

0

私は良い解決策を見つけました:

private bool KickServices(string serviceUrl)
        {
            bool result = false;

            var request = WebRequest.Create(serviceUrl) as HttpWebRequest;
            if (request != null)
            {
                request.ContentType = "application/xml";
                request.Method = "GET";
            }

            if (request != null)
            {
                var response = request.GetResponse() as HttpWebResponse;
                if (response != null && response.StatusCode == HttpStatusCode.OK)
                {
                    string resultContent = null;
                    Encoding responseEncoding = Encoding.GetEncoding(response.CharacterSet);
                    using (var sr = new StreamReader(response.GetResponseStream(), responseEncoding))
                    {
                        resultContent = sr.ReadToEnd();
                        if (resultContent.Contains(serviceUrl))
                            result = true;
                    }
                }
            }

            return result;
        }
于 2012-12-20T16:06:50.313 に答える