Web API re-install for TNEW

I'm in the process of refactoring some of our services layer, and also clarifying our internal documentation on server builds. I'm wondering if anyone could offer some knowledge on the following:

- In the Web API installation documentation, there is a complete step (Step 2) for creating a virtual directory for the web API application on your site in IIS prior to doing the actual install with TIM. Does anyone know why or if this is actually required? The main v.12 installation documentation doesn't require this for any of the other services; TIM seems perfectly capable of creating the application once you create the IIS site and application pool. I'm not sure what I gain by creating a virtual directory manually when all of its parameters are configured in TIM--and I have a strong hunch that in our original (and still working) installation, we messed up this step and TIM installed to a different location anyway without any issues.

- Is there any extra configuration of the WebAPI specifically that is required for TNEW (v 4.5) to function? I'm experimenting with our Test instance at present -- starting from a fully functional state, I uninstalled the WebAPI application and then re-installed to a different filesystem location. The API is accessible by the same URLs it was before, so all of the user/group security and defaults settings in the database should still be working fine. Regular API diagnostics (from the install docs) also check out, and TNEW can access the API and pull information to the calendar or event listing pages, but trying to load a seating page causes a 500 error. I don't think I'm missing any other configuration of the API from the docs, but I copied back our old web.config from the previous working install to be sure -- no help. Any ideas?

Here's the error I'm getting from the TNEW logs when trying to load a selectseating page:

2014-09-19 00:14:50.9726 - Fatal 
ExpressWeb.Global.Application_Error 
System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.Exception: System.Data.SqlClient.SqlException: A .NET Framework error occurred during execution of user-defined routine or aggregate "TXP_GET_ALL_PRICES": 
System.Exception: https://tessi.example.com/TessituraService/Txn/Performances/Prices/?modeOfSale=3&performanceIds=320
There was an error calling Performance Service. Status Code 'InternalServerError'. 
System.Exception: 
at TessituraSQLServices.PricingHelper.GetAllPrices(SqlString sessionkey, SqlInt32 perf_no, SqlInt32 pkg_no, SqlInt32 price_type, SqlInt32 mos, SqlDateTime price_dt, SqlString return_pmap)

Hm, does this have something to do with the webAPI talking to the REST services, then? Is there any configuration directly related to that?

  • Hmm, upon further inspection it looks like there are a bunch of files missing from my newly installed API that were present on the old version--various template files and DLL's, but I can't find any reference to them in the TNEW installation documentation. Maybe that has something to do with it...

  • Huh, the saga continues:

    I never re-ran services diagnostics after my shake-up -- I think the WebAPI is actually totally fine; but I made some binding changes in IIS that, while they didn't affect the WebAPI, they DID totally break the Services. I'm getting this error:

    This collection already contains an address with scheme https. There can be at most one address per scheme in this collection. If your service is being hosted in IIS you can fix the problem by setting 'system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled' to true or specifying 'system.serviceModel/serviceHostingEnvironment/baseAddressPrefixFilters'.

    The whole point of this is to open up the REST services for TNEW version 5, and I expected that in order to do that I would have to bind it to https for client access on the LAN and also https on an external domain for TNEW access. This is starting to look more TASK-worthy...