Yeah true. I wanted to avoid using IIS though if at all possible. On 2/26/10, silky <michaelsli...@gmail.com> wrote: > Well, I believe you can read the current "random" port that it wants > to use from the config (so if you desired, you could do that). > > However, you should be able to simply change the project properties so > that instead of using the inbuilt asp.net webservice, it uses your > local IIS one. Infact, you can just set the port in the same > properties area (right click the web project, select "Properties" go > to the "Web" tab). > > > > > On Fri, Feb 26, 2010 at 12:27 PM, Geoff Appleby <geoff.appl...@gmail.com> > wrote: >> I've got a weird situation going on. Hopefully someone knows which >> (probably simple) button to click to do to get it working the way i >> want it. >> >> I've got a largish solution full of different projects. also part of >> the solution is a set of testing projects. one of the projects in the >> solution is a web service (simple boring web service, not wcf or >> anything). the web service project is set to, when debugging etc, use >> the asp net file system based development web server, and is set to >> always start listening on the same port (say, 2222). and that works >> fine and when just running in the debugger everything is good and the >> web service gets called on port 2222. >> >> When i run unit tests, however, it somehow "knows" there's a web >> service involved - and it starts the web service, but starts it on a >> random port. All well and good, except that all my code that in the >> other projects that call the web wervice pull the url to use from the >> app.config file that specifies the port of 2222. End result - all the >> calls to the web service fail because its been started on some other >> port. >> >> Interestingly, i've noticed two strange behaviours: >> 1) if i manually start a new debugging instance of the web service, it >> will start on 2222. If i leave it running and then start the unit >> tests, it ALSO starts teh web service on a random port, but the tests >> i have that call code that invokes web service succeed because it can >> connect on 2222. >> 2) one of my tests, so far, test a function that lives INSIDE the web >> service and relies on a the HttpContext object. Iv'e decorated this >> unit test saying HostType("ASP.NET"), >> AspNetDevelopmentServerHost("file system path to the web service") and >> UrlToTest("http://localhost:2222/WebForm1.aspx") ... and it happily >> runs the test inside the file system web server...on the RANDOM port, >> not port 2222 - which means the test always succeeds, regardless of >> point 1) above. >> >> I've read up on the webtesthelper.redirecturl (or words to that >> effect) helper class, but that's no good because it works on a web >> service reference object - and in my case the web service reference >> object is buried deep within a class library - my test is calling a >> public method on the class library that internally instantiates teh >> web service object and invokes it, all based on config file values. >> >> >> so in short - anyone know how to stop the test engine starting the web >> service on a random port, but to start it on a fixed port instead? >> >> >> -- >> Geoff Appleby >> Blog: http://blogs.crankygoblin.com/blogs/geoff.appleby/ >> > > > > -- > silky > > http://www.programmingbranch.com/ >
-- Geoff Appleby Blog: http://blogs.crankygoblin.com/blogs/geoff.appleby/