Ah, au contraire, yes you do. I had one of those SharePoint WTF challenges today. I'm building out a SharePoint Designer workflow against a custom list in a custom web template. I know what you're thinking, and I thought the same, but it wasn't the case!
What was going on was, in my workflow, I have a standard approval task. Clicking on the task in Designer opens the page where I can modify the properties of the task, like its name, allow reassignment, that sort of thing. It's also the page where I can define the outcomes of the task - Approved, Rejected, or custom items like Wait Til Next Year or In Your Dreams for those vacation request denials.
Problem is, when I open the page, there were no task outcomes defined...and worse, when I clicked the "New.." button or "New Outcome" on the ribbon, nothing happened, nada:
Not pretty, is it? I did verify the same workflow worked fine with an OOTB site definition, so my first approach was to look at the web template definition and list definition, and yeah there were a few things wrong...but that didn't fix this issue. Redeployed the web template, IISRESETted, rebooted, still No Task Outcomes.
The Solution
I've decided to make the solutions succinct and clearly findable - so you Dear Reader can skip all of the fluff above and get your workflow deployed so you can get home and relax.
Go to Site Settings and in Site Collection Features, deactivate all workflow related features; then go back and re-active those feature.
Worked for me twice, the third side I had really screwed up and got an error that a list "wfpub" in my web was already created so I couldn't activate the workflow features again, so it goes.
Have a slice for me!
Thursday, April 18, 2013
Monday, March 25, 2013
CSOM in a CQWP
The post title explains it all! I've been trying to put together some dynamic web page content based on items in a SharePoint list, using JavaScript code inside a Content Query Web Part on one of my site pages. Shouldn't be so hard, right?
Well, turns out it isn't. Found a nice link here with some of the steps needed: http://techtrainingnotes.blogspot.com/2012/02/sharepoint-how-to-add-javascript-to.html - but with that code on my linked in JavaScript source file, the code still wasn't firing.
Here's what's needed. At the bottom of the code, add in the following:
function myJSfunction {
var clientContext = new SP.ClientContext.get_current();
}
function DelayUntilMyJSLoaded()
{
ExecuteOrDelayUntilScriptLoaded(myJSfunction, 'sp.js');
}
_spBodyOnLoadFunctionNames.push('DelayUntilMyJSLoaded');
What these lines will do is to call my function, but only when the function is ready to be called based on having the base 'sp.js' file loaded. If you do a view source on the hosting page, there toward the bottom you'll see something very similar.
Well, turns out it isn't. Found a nice link here with some of the steps needed: http://techtrainingnotes.blogspot.com/2012/02/sharepoint-how-to-add-javascript-to.html - but with that code on my linked in JavaScript source file, the code still wasn't firing.
Here's what's needed. At the bottom of the code, add in the following:
function myJSfunction {
var clientContext = new SP.ClientContext.get_current();
}
function DelayUntilMyJSLoaded()
{
ExecuteOrDelayUntilScriptLoaded(myJSfunction, 'sp.js');
}
_spBodyOnLoadFunctionNames.push('DelayUntilMyJSLoaded');
What these lines will do is to call my function, but only when the function is ready to be called based on having the base 'sp.js' file loaded. If you do a view source on the hosting page, there toward the bottom you'll see something very similar.
Tuesday, February 26, 2013
So that's what the Host-Only Adapter is used for! (Windows Phone SDK VM challenge)
Preparing for a talk this Saturday at Grand Rapids DevDays, I wanted to demo the new capabilities for mobile development with SharePoint 2013. The Visual Studio tooling (alas, sorry MS people, but I have one of those fruit company phones and I like it!) has a good story for Windows Phone, but for the rest of us? Another story - white paper forthcoming.
For Windows Phone development, here's the big kicker: can't use that Phone emulator virtualized. Nope, nada, nil, ixnay, no can do. The Windows 8 SDK requires hardware virtualization with SLAT support - great on physical iron but not virtual iron, so that's right out. With the Phone 7.1 SDK, same issue - first there's a big warning about not having a compatible GPU, then the phone emulator would continuously reboot to the OS and my app never came up.
So...this gets us to the point of this post, what's a virtualization developer to do? Ever notice in VirtualBox you have a bunch of choices for networking?
I've been using VirtualBox since I needed x64 support & Virtual-PC just couldn't do it...I've used NAT, Bridged, Internal Network...but Host-only adapter? What the heck is that for? Out of the box it has an IP address of 192.168.1.56, what good is that?
Well, turns out this is your way in from the host to your guest internal network. I assigned an IP in the range of my guests, assigned the guest DNS and default router, changed the VM's to use Host-only Adapter instead of Internal Network, and look at that, I'm in! The host is not part of my domain but no worries, I need to use Forms Based Authentication anyway for my mobile testing, so we're good to go.
The only other change is to add in entries to the Hosts file on the host for the DNS entries you'll need. I wasn't able to resolve the hosts values otherwise, and no farm in it.
I'm installing the SDK 8.0 now on my Windows 8 VM with Visual Studio 2012...got a feeling this will work, I'll let you know.
Update: Strike One. SDK 8.0 enables Hyper-V. Not a good thing for running VirtualBox VMs. And there can be only one hypervisor - if Hyper-V is enabled then VirtualBox can't run. Uninstalling SDK 8.0 and VS 2012, going back to VS2010 and let's hope SDK 7.1 behaves better.
Update: Strike Two and probably three...the good news is I can start up Visual Studio 2010, connect to my SharePoint guest VMs, get list data, prepare my app, but then when I start up the emulator - wham! There go the VMs. Seems the VS2010 Windows Phone Emulator is also using the same virtualization VirtualBox needs, and so it knocks out my VirtualBox VMs. I guess the answer will be to go to Hyper-V with the SDK 8.0 version, but I won't get to that til next week. Oh well!
For Windows Phone development, here's the big kicker: can't use that Phone emulator virtualized. Nope, nada, nil, ixnay, no can do. The Windows 8 SDK requires hardware virtualization with SLAT support - great on physical iron but not virtual iron, so that's right out. With the Phone 7.1 SDK, same issue - first there's a big warning about not having a compatible GPU, then the phone emulator would continuously reboot to the OS and my app never came up.
So...this gets us to the point of this post, what's a virtualization developer to do? Ever notice in VirtualBox you have a bunch of choices for networking?
I've been using VirtualBox since I needed x64 support & Virtual-PC just couldn't do it...I've used NAT, Bridged, Internal Network...but Host-only adapter? What the heck is that for? Out of the box it has an IP address of 192.168.1.56, what good is that?
Well, turns out this is your way in from the host to your guest internal network. I assigned an IP in the range of my guests, assigned the guest DNS and default router, changed the VM's to use Host-only Adapter instead of Internal Network, and look at that, I'm in! The host is not part of my domain but no worries, I need to use Forms Based Authentication anyway for my mobile testing, so we're good to go.
The only other change is to add in entries to the Hosts file on the host for the DNS entries you'll need. I wasn't able to resolve the hosts values otherwise, and no farm in it.
I'm installing the SDK 8.0 now on my Windows 8 VM with Visual Studio 2012...got a feeling this will work, I'll let you know.
Update: Strike One. SDK 8.0 enables Hyper-V. Not a good thing for running VirtualBox VMs. And there can be only one hypervisor - if Hyper-V is enabled then VirtualBox can't run. Uninstalling SDK 8.0 and VS 2012, going back to VS2010 and let's hope SDK 7.1 behaves better.
Update: Strike Two and probably three...the good news is I can start up Visual Studio 2010, connect to my SharePoint guest VMs, get list data, prepare my app, but then when I start up the emulator - wham! There go the VMs. Seems the VS2010 Windows Phone Emulator is also using the same virtualization VirtualBox needs, and so it knocks out my VirtualBox VMs. I guess the answer will be to go to Hyper-V with the SDK 8.0 version, but I won't get to that til next week. Oh well!
SharePoint Foundation 2013 Service Applications list
Below is a screen capture of the set of service applications available with SharePoint Foundation 2013:
Available in Foundation are:
Here the list is:
Plenty more when you enable Standard and Enterprise features, but I was trying to find out specifically what we get with Foundation.
Available in Foundation are:
- App Management Service - used for the new Apps feature set of SharePoint 2013
- Business Data Connectivity Service - get at that external data through external list definitions
- Secure Store Service - store credentials and other data centrally and with encryption
- Application Discovery and Load Balancer Service App - created with the farm
- Security Token Service Application - used for authentication.
Here the list is:
- App Management Service
- Business Data Connectivity Service
- Central Administration
- Claims to Windows Token Service
- Distributed Cache
- Lotus Notes Connector
- Microsoft SharePoint Foundation Incoming E-Mail
- Microsoft SharePoint Foundation Sandboxed Code Service
- Microsoft SharePoint Foundation Subscription Settings Service
- Microsoft SharePoint Foundation Web Application
- Microsoft SharePoint Foundation Workflow Timer Service
- Request Management
- Search Host Controller Service
- Search Query and Site Settings Service
- Secure Store Service
- SharePoint Server Search
Plenty more when you enable Standard and Enterprise features, but I was trying to find out specifically what we get with Foundation.
Friday, February 22, 2013
VirtualBox - SetHDUUID COM error
Quick tip in case you have the same issue. I use VirtualBox as my server virtualization tool - it's a bit nicer on the laptop than running Hyper-V, but that's a whole other discussion! With VirtualBox, when you set up a template VHD image, to use that image for a new virtual server, you need to assign a unique ID to the VHD image.
Usually, no problem. VirtualBox has two ways to do this, either the CloneHD command or a SetHDUUID command:
c:\program files\oracle\virtualbox\vboxmanage internalcommands sethduuid
So what's the problem? I had opened up a command prompt, entered in these commands, but got an error back that the VirtualBox COM server was not running:
VBoxManage.exe: error: Failed to create the VirtualBox object!
VBoxManage.exe: error: Code CO_E_SERVER_EXEC_FAILURE (0x80080005) - Server execu
tion failed (extended info not available)
VBoxManage.exe: error: Most likely, the VirtualBox COM server is not running or
failed to start.
The solution? Since this is an admin sort of thing to do I had opened up the command prompt as administrator (Windows 8 - type in CMD, right click Command Prompt, choose Run as Administrator)...and apparently that was the wrong answer! Open up a regular ol' Command Prompt window and the command goes through just fine.
I'm sure this is a permissions issue - next slow rainy day I'll crack open ProcessMonitor and see exactly what VboxManage can't grab, but for now we're good to go.
Usually, no problem. VirtualBox has two ways to do this, either the CloneHD command or a SetHDUUID command:
c:\program files\oracle\virtualbox\vboxmanage internalcommands sethduuid
So what's the problem? I had opened up a command prompt, entered in these commands, but got an error back that the VirtualBox COM server was not running:
VBoxManage.exe: error: Failed to create the VirtualBox object!
VBoxManage.exe: error: Code CO_E_SERVER_EXEC_FAILURE (0x80080005) - Server execu
tion failed (extended info not available)
VBoxManage.exe: error: Most likely, the VirtualBox COM server is not running or
failed to start.
The solution? Since this is an admin sort of thing to do I had opened up the command prompt as administrator (Windows 8 - type in CMD, right click Command Prompt, choose Run as Administrator)...and apparently that was the wrong answer! Open up a regular ol' Command Prompt window and the command goes through just fine.
I'm sure this is a permissions issue - next slow rainy day I'll crack open ProcessMonitor and see exactly what VboxManage can't grab, but for now we're good to go.
Monday, February 18, 2013
Test Lab Guides for SP2013
Looking for some help setting up your SharePoint 2013 environment? Microsoft's published a series of guides to walk you through the process of setting up a 3-tier farm, then once you have that done, you can configure Claims, Forms Based Authentication, setting up an intranet, and enabling social features:
Three-Tier Farm Configuration
SAML-based Claims Authentication with SharePoint 2013
Forms-Based Authentication
Intranet Collaboration with SP2013
Demonstrate Social Features for SP2013
Full details on the test lab guides:
http://social.technet.microsoft.com/wiki/contents/articles/12409.sharepoint-server-2013-test-lab.aspx
Setting up Forms-Based Authentication now to get my mobile development environment ready for demo!
Three-Tier Farm Configuration
SAML-based Claims Authentication with SharePoint 2013
Forms-Based Authentication
Intranet Collaboration with SP2013
Demonstrate Social Features for SP2013
Full details on the test lab guides:
http://social.technet.microsoft.com/wiki/contents/articles/12409.sharepoint-server-2013-test-lab.aspx
Setting up Forms-Based Authentication now to get my mobile development environment ready for demo!
Thursday, January 03, 2013
IIS Error 500 - app pool culprit
I was helping a coworker today with an error trying to get a SharePoint site up and running. We were able to provision a new web app with SharePoint Central Admin, and were able to create a site collection in that web app, but when we opened up the web app we got the ol' "Internal Server Error 500" error.
What was different with this one was there were no entries in the Windows event viewer or the ULS logs, so I thought it was an issue with IIS - the IIS log did show an entry with a code 500 0 0 23 and 500 0 0 22. The problem was not with security as I thought, whether an invalid app pool ID, invalid permissions for the app pool account, having anonymous enabled on the site, and so on...
It turned out the problem was a setting with the app pool. If you go into Advanced Settings for the app pool, the value for Enable 32-Bit Applications was set to True, but the default and proper setting is False, as shown below.
We changed the value back to False, recycled the app pool, and no more error 500!
What was different with this one was there were no entries in the Windows event viewer or the ULS logs, so I thought it was an issue with IIS - the IIS log did show an entry with a code 500 0 0 23 and 500 0 0 22. The problem was not with security as I thought, whether an invalid app pool ID, invalid permissions for the app pool account, having anonymous enabled on the site, and so on...
It turned out the problem was a setting with the app pool. If you go into Advanced Settings for the app pool, the value for Enable 32-Bit Applications was set to True, but the default and proper setting is False, as shown below.
We changed the value back to False, recycled the app pool, and no more error 500!
SharePoint Foundation Event ID 8321, solved
I have two servers running SharePoint 2013 and both were getting the same Event ID 8321 error every 15 minutes or so in the Event Viewer:
A certificate validation operation took 15004.9996 milliseconds and has exceeded the execution time threshold. If this continues to occur, it may represent a configuration issue. Please see http://go.microsoft.com/fwlink/?LinkId=246987 for more details.
I made two changes to solve this, not sure which one did the trick finally but both are worth trying. The first, my company uses a proxy server, but I didn't have this configured on either server. The second was to download the latest (December 2012) Root Certificates from Microsoft here: http://www.microsoft.com/en-us/download/details.aspx?id=35945
So far no more 8321 errors, if they do come back I'll let you know!
Happy 2013!
Updated 5/6/2013...well, turns out it was the first trick that solved this. My company uses a proxy server to connect out to the Internet, but it's set up with a configuration script. So...the fix is:
1) Regedit
2) In HKEY_USERS, for each SID based ID (not with _Classes) drill in to:
\Software\Microsoft\Windows\CurrentVersion\Internet Settings
3) Create two keys:
AutoConfigURL, string, set the value to your config script URL
ProxyEnable, DWORD, set to 0
Reboot for good measure. This did work for me, no more of those pesky errors.
Update 1/21/14:
Found this Support article describing a fix which adds the SharePoint certificate to the trusted certificates store on the server: http://support.microsoft.com/kb/2625048
A certificate validation operation took 15004.9996 milliseconds and has exceeded the execution time threshold. If this continues to occur, it may represent a configuration issue. Please see http://go.microsoft.com/fwlink/?LinkId=246987 for more details.
I made two changes to solve this, not sure which one did the trick finally but both are worth trying. The first, my company uses a proxy server, but I didn't have this configured on either server. The second was to download the latest (December 2012) Root Certificates from Microsoft here: http://www.microsoft.com/en-us/download/details.aspx?id=35945
So far no more 8321 errors, if they do come back I'll let you know!
Happy 2013!
Updated 5/6/2013...well, turns out it was the first trick that solved this. My company uses a proxy server to connect out to the Internet, but it's set up with a configuration script. So...the fix is:
1) Regedit
2) In HKEY_USERS, for each SID based ID (not with _Classes) drill in to:
\Software\Microsoft\Windows\CurrentVersion\Internet Settings
3) Create two keys:
AutoConfigURL, string, set the value to your config script URL
ProxyEnable, DWORD, set to 0
Reboot for good measure. This did work for me, no more of those pesky errors.
Update 1/21/14:
Found this Support article describing a fix which adds the SharePoint certificate to the trusted certificates store on the server: http://support.microsoft.com/kb/2625048
Friday, November 30, 2012
SharePoint Preview to RTM?
Hello world....we have a site collection with a custom master page & design that we migrated from SharePoint 2010 to SP2013 Preview. Now that the RTM bits are available on MSDN, it's been on my list to get that site migrated over from Preview to RTM. I did not find any doco stating this cannot be done, so fingers crossed, I tried it out.
My first try was to use the backup-spsite & restore-spsite cmdlets, to see if I could move the site from the Preview server to the RTM server. While I was able to create the backup, when I tried to use the restore-spsite command, SharePoint came back with the not-helpful Unknown SPRequest error occurred. More information: 0x80070003 error...so no go! The ULS logs didn't mave much in there, so I scrapped the site backup approach.
What did work was the content DB approach. I took a SQL Server backup of the source database, which had only my site in it. Make sure the content DB doesn't have a site with the same name as one in your target farm, including the root site, since that will interfere with the 'migration'.
Restore this database backup in SQL Server to your RTM SQL instance, or restore it to a different database name & new file names if you're using the same SQL Server.
Next up is to use the test-spcontentdatabase command:
which will come back with a set of warnings for the database. Scan through this to make sure none will block the upgrade. If all goes well, mount that database!
Once done, you'll be able to open the site on the RTM version.
My first try was to use the backup-spsite & restore-spsite cmdlets, to see if I could move the site from the Preview server to the RTM server. While I was able to create the backup, when I tried to use the restore-spsite command, SharePoint came back with the not-helpful Unknown SPRequest error occurred. More information: 0x80070003 error...so no go! The ULS logs didn't mave much in there, so I scrapped the site backup approach.
What did work was the content DB approach. I took a SQL Server backup of the source database, which had only my site in it. Make sure the content DB doesn't have a site with the same name as one in your target farm, including the root site, since that will interfere with the 'migration'.
Restore this database backup in SQL Server to your RTM SQL instance, or restore it to a different database name & new file names if you're using the same SQL Server.
Next up is to use the test-spcontentdatabase command:
test-spcontentdatabase -name mydbname -webapplication http://myserver.myco.com which will come back with a set of warnings for the database. Scan through this to make sure none will block the upgrade. If all goes well, mount that database!
mount-spcontentdatabase -name mydbname -webapplication http://myserver.myco.comOnce done, you'll be able to open the site on the RTM version.
Friday, August 10, 2012
Sharepoint 2013 apps: prompt for credentials
At last - I've finally been able to deploy my first app! I am mainly focusing on SharePoint hosted app development, we'll get this nailed down first then explore the cloud model. But for now, I'm using Visual Studio 2012 RC with the Office extensions, then when I go in to create my first app, all is well, the app gets deployed, then when I try to open the app I get prompted for credentials three times then the page comes up blank.
IIS shows a 401 error, which led me to think it was a permissions issue, tried going down that path without success.
My good friend M. told me the solution - had to disable the loopback adapter check in the registry on my box. Do these steps then try out that app again - it'll work just fine!
Next up will be to create an app that interacts with a SharePoint list. I'll post code once that's working!
Steve
IIS shows a 401 error, which led me to think it was a permissions issue, tried going down that path without success.
My good friend M. told me the solution - had to disable the loopback adapter check in the registry on my box. Do these steps then try out that app again - it'll work just fine!
- Run RegEdit as admin. Locate and then click the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
- Right click the node "Lsa", point to New, and then click DWORD
- Type in the name of the key as DisableLoopbackCheck, noting case, and then press enter.
- Right click the new DisableLoopbackCheck key, and then click Modify.
- In the Value data box, type 1, and then click OK.
- Quit the Registry Editor, and then reboot your server.
Next up will be to create an app that interacts with a SharePoint list. I'll post code once that's working!
Steve
Wednesday, July 18, 2012
Creating a SharePoint 2013 App - set the App Domain
Hello world...I finally have my first SharePoint 2013 App deployed!! It was an interesting road. The answer is to very carefully follow the steps in this document from MSDN, in particular, to set up your App domain.
Like many of you, I first installed SharePoint 2013, then Visual Studio 2012 RC, then ran the web install to get the SharePoint 2013 development extensions added in. So far so good! I then started up Visual Studio, saw the new "Apps" entry in the Office/SharePoint templates for Visual Studio, and created a new project based on the "App for SharePoint 2013" project type. Cool!
But, when I deployed my App, SharePoint came back with the error "Failed to install App for SharePoint" in Visual Studio's Error list. The Output window didn't show much more than that. When I looked in the ULS log for my App's project name, I found this helpful message:
An App domain must be configured prior to completing this operation
That got me thinking there must be more involved in setting up an App, so when all else fails, I decided to read the doco. I know, crazy!! But before creating an App, you need to configure a hosting 'domain' for your Apps. This is for on-prem hosting, I'm sure for Office 365 there's a similar process just so your HelloApp app won't overwrite my HelloApp app.
The PowerShell command "set-SPAppDomain" did the trick. Since the document says to also link this domain to the Subscription Settings and App Management service apps, I deleted both of these apps thru Central Admin, then used the referenced script to create them. This does need the farm account, which in my case was already registered as a Managed Account.
$account = Get-SPManagedAccount "mydomain\myfarmaccount"
$appPoolSubSvc = New-SPServiceApplicationPool -Name SettingsServiceAppPool -Account $account
$appPoolAppSvc = New-SPServiceApplicationPool -Name AppServiceAppPool -Account $account
$appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolSubSvc –Name SettingsServiceApp –DatabaseName O13Preview_SettingsServiceDB
$proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $appSubSvc
$appAppSvc = New-SPAppManagementServiceApplication -ApplicationPool $appPoolAppSvc -Name AppServiceApp -DatabaseName O13Preview_AppServiceDB
$proxyAppSvc = New-SPAppManagementServiceApplicationProxy -ServiceApplication $appAppSvc
All that ran fine.
Interestingly, I had an error on this last step:
Set-SPAppSiteSubscriptionName -Name "mydomain" -Confirm:$false
Note that the name isn't the same name given in the set-spappdomain step - the above didn't like the period separator, so I used just the leftmost part of my domain.
The error, though, was another surprisingly clear error message. PowerShell came back with an error from the SecureToken web service site (port 32843), checked to make sure the service was running, tried to delete the service app and recreate it but SharePoint wouldn't let me; looked in the logs again and there was the message: " System.InsufficientMemoryException"
So that's clear enough! My VM was running with 8GB of RAM - I had shut down some non-essential services like BCS, Word Automation, Visio, Access, etc., earlier, but looks like 8GB isn't enough.
After I increased RAM to 12GB I was able to do that last command, and finally I have a deployed app!!
Like many of you, I first installed SharePoint 2013, then Visual Studio 2012 RC, then ran the web install to get the SharePoint 2013 development extensions added in. So far so good! I then started up Visual Studio, saw the new "Apps" entry in the Office/SharePoint templates for Visual Studio, and created a new project based on the "App for SharePoint 2013" project type. Cool!
But, when I deployed my App, SharePoint came back with the error "Failed to install App for SharePoint" in Visual Studio's Error list. The Output window didn't show much more than that. When I looked in the ULS log for my App's project name, I found this helpful message:
An App domain must be configured prior to completing this operation
That got me thinking there must be more involved in setting up an App, so when all else fails, I decided to read the doco. I know, crazy!! But before creating an App, you need to configure a hosting 'domain' for your Apps. This is for on-prem hosting, I'm sure for Office 365 there's a similar process just so your HelloApp app won't overwrite my HelloApp app.
The PowerShell command "set-SPAppDomain" did the trick. Since the document says to also link this domain to the Subscription Settings and App Management service apps, I deleted both of these apps thru Central Admin, then used the referenced script to create them. This does need the farm account, which in my case was already registered as a Managed Account.
$account = Get-SPManagedAccount "mydomain\myfarmaccount"
$appPoolSubSvc = New-SPServiceApplicationPool -Name SettingsServiceAppPool -Account $account
$appPoolAppSvc = New-SPServiceApplicationPool -Name AppServiceAppPool -Account $account
$appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolSubSvc –Name SettingsServiceApp –DatabaseName O13Preview_SettingsServiceDB
$proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $appSubSvc
$appAppSvc = New-SPAppManagementServiceApplication -ApplicationPool $appPoolAppSvc -Name AppServiceApp -DatabaseName O13Preview_AppServiceDB
$proxyAppSvc = New-SPAppManagementServiceApplicationProxy -ServiceApplication $appAppSvc
All that ran fine.
Interestingly, I had an error on this last step:
Set-SPAppSiteSubscriptionName -Name "mydomain" -Confirm:$false
Note that the name isn't the same name given in the set-spappdomain step - the above didn't like the period separator, so I used just the leftmost part of my domain.
The error, though, was another surprisingly clear error message. PowerShell came back with an error from the SecureToken web service site (port 32843), checked to make sure the service was running, tried to delete the service app and recreate it but SharePoint wouldn't let me; looked in the logs again and there was the message: " System.InsufficientMemoryException"
So that's clear enough! My VM was running with 8GB of RAM - I had shut down some non-essential services like BCS, Word Automation, Visio, Access, etc., earlier, but looks like 8GB isn't enough.
After I increased RAM to 12GB I was able to do that last command, and finally I have a deployed app!!
Tuesday, July 17, 2012
SharePoint 2013 Hardware Requirements - RAM!
Time to beef up that laptop! There's a posting on TechNet describing the minimum hardware footprint for SharePoint 2013:
Of particular note is the RAM requirement - even for a developer box SP2013 wants 8GB of RAM. A lot of the newer laptops go up to 32GB but my HP 8540w is maxed at 8GB. I'm installing now using my usual two VM model, one for the AD & SQL Server box, the other for SharePoint. Once done I'll post on performance, compared to the server running in our model office lab.
Of particular note is the RAM requirement - even for a developer box SP2013 wants 8GB of RAM. A lot of the newer laptops go up to 32GB but my HP 8540w is maxed at 8GB. I'm installing now using my usual two VM model, one for the AD & SQL Server box, the other for SharePoint. Once done I'll post on performance, compared to the server running in our model office lab.
Monday, July 16, 2012
SharePoint 2013 preview released!
Got TechNet or MSDN? Get downloading!!
I'm looking forward to all of the new capabilities of SharePoint! Will be blogging details shortly.
Great info available on MSDN - the link to download the preview version, as well as some great training & docs on SP2013:
I'm looking forward to all of the new capabilities of SharePoint! Will be blogging details shortly.
Great info available on MSDN - the link to download the preview version, as well as some great training & docs on SP2013:
Friday, June 15, 2012
Hyper-V and Windows 8 and SharePoint, part 2
Still running Windows 8 and I'm growing to like it...but let's take a look at:
The Good
The Bad
The Ugly
A few Windows 8 tips:
Now, as for the rest of Windows 8, I don't really use the Metro stuff yet since my laptop doesn't have a touchscreen. I've figured out how to make the 'start' work, and I don't mind it...and I'm a keyboard guy so Alt-F4 from the desktop brings up the Shutdown menu, again I can live with that.
The Good
- It's a 64 bit virtualization story from Microsoft, at long last!!
- Uses the same file format as the Windows Server Hyper-V (VHD) and has an extended format that ran better for me - I converted my VHDs to VHDX's and performance did seem better
- Works with both my wired and wireless network connections
- Dynamic RAM allocation!
The Bad
- No audio support in the virtual machine. In theory if I use Remote Desktop Connection to log on instead of Hyper-V connect this would work, but so far I haven't been able to get it working. Not that big a deal, I really don't need the audio on my servers.
- No more Shared Folders...I miss this from VirtualPC/VirtualBox. I can use regular ol network shares, but it's easier to just set it up with \\vboxsvr\c_drive!
- Video resolutions are fixed - I can't resize the video window to whatever size I need, gotta pick from 1024x768, 1152x864, 1280x1024, or 1600x1200. While these are acceptable, I'd like to be able to use more of the width & less of the height on my 1600x1200 monitor.
The Ugly
- Can't have more than one hypervisor installed. That is, I can't also install VirtualBox if I have the Hyper-V role installed - networking doesn't work but worse, the VM won't boot up.
- Performance is not as good as VirtualBox. It's acceptable, but I'll call this ugly because I want performance to be at least as good as VirtualBox.
- Clipboard support. This gets an ugly vote because there isn't an integrated clipboard between the guests and host. There's a one way 'insert clipboard text' option available, but I can't copy text in the guest and paste in the host. Maybe I do need to get Remote Desktop Connection working!
A few Windows 8 tips:
- There was an update last Tuesday that really seemed to improve system stability - be sure you get those patches installed!
- My AOC USB monitor does not work - don't use the DisplayLink driver! Causes the display to not appear, and with Bitlocker installed I couldn't get to a system restore point :-(
Now, as for the rest of Windows 8, I don't really use the Metro stuff yet since my laptop doesn't have a touchscreen. I've figured out how to make the 'start' work, and I don't mind it...and I'm a keyboard guy so Alt-F4 from the desktop brings up the Shutdown menu, again I can live with that.
Monday, May 14, 2012
Hyper-V and VirtualBox with Windows 8
Well, here I am posting this on my Windows 7 laptop...I ended up reverting back to Windows 7 after a not too successful run with Hyper-V on Windows 8. I have a pretty decent laptop, 8GB of RAM & an older generation i7 CPU (2 core, 2 threads) and with Windows 7 it runs VirtualBox pretty well.
I have my domain controller/SQL Server box on one VM, and my SharePoint dev environment on the other. I also have a Windows 7 workstation as part of the internal network so I can do some single signon testing. With VirtualBox I can have all three of these machines running at the same time with decent performance - two are on an eSata SSD & the other is on an internal fairly fast hard drive.
With Windows 8, the good news is if you've used the VHD file format for your virtual machines, you're in luck - with a bit of work on changing additions & a few reboots you can definitely use your VirtualBox VMs. If you went with the VDI file format, you're not out of luck, you just need some patience - VirtualBox offers a method to clone your VDI files to the VHD format. Good instructions for doing this here: http://srackham.wordpress.com/cloning-and-copying-virtualbox-virtual-machines/. It takes a while but in the end I did have a workable copy of my VDI file in VHD format, which Hyper-V on Windows 8 could handle. Didn't try any VMWare image conversions, good luck with that!
But that's about as far as the happiness went...when I fired up the VMs performance was slow. I moved the VHDs around so that I was running on an internal SATA II SSD, not a rocketship drive but still plenty fast. Got the additions sorted out, but still no luck. The kicker was on the Windows 7 workstation machine, the video driver seemed very slow - colors didn't look great & performance was poky. Should have taken a screen capture, sorry about that!
So for now the answer is, I liked what I saw - our corporate hypervisor solution is Hyper-V with System Center 2012's Virtual Machine Manager. I took one of our prebuilt VHD files & it worked great, and I was able to use my VirtualBox VMs with Hyper-V. Performance was just too slow for now - high hopes for the next release of Windows 8 & higher hopes for the RTM release, hope it comes soon!
I have my domain controller/SQL Server box on one VM, and my SharePoint dev environment on the other. I also have a Windows 7 workstation as part of the internal network so I can do some single signon testing. With VirtualBox I can have all three of these machines running at the same time with decent performance - two are on an eSata SSD & the other is on an internal fairly fast hard drive.
With Windows 8, the good news is if you've used the VHD file format for your virtual machines, you're in luck - with a bit of work on changing additions & a few reboots you can definitely use your VirtualBox VMs. If you went with the VDI file format, you're not out of luck, you just need some patience - VirtualBox offers a method to clone your VDI files to the VHD format. Good instructions for doing this here: http://srackham.wordpress.com/cloning-and-copying-virtualbox-virtual-machines/. It takes a while but in the end I did have a workable copy of my VDI file in VHD format, which Hyper-V on Windows 8 could handle. Didn't try any VMWare image conversions, good luck with that!
But that's about as far as the happiness went...when I fired up the VMs performance was slow. I moved the VHDs around so that I was running on an internal SATA II SSD, not a rocketship drive but still plenty fast. Got the additions sorted out, but still no luck. The kicker was on the Windows 7 workstation machine, the video driver seemed very slow - colors didn't look great & performance was poky. Should have taken a screen capture, sorry about that!
So for now the answer is, I liked what I saw - our corporate hypervisor solution is Hyper-V with System Center 2012's Virtual Machine Manager. I took one of our prebuilt VHD files & it worked great, and I was able to use my VirtualBox VMs with Hyper-V. Performance was just too slow for now - high hopes for the next release of Windows 8 & higher hopes for the RTM release, hope it comes soon!
Timer job - cannot uninstall, missing default public constructor
So the answer is yes, timer jobs do need a default constructor, even if there isn't a need to have one. When my colleague tried to deploy an update to a timer job after pulling out the constructor, he got the following message:
Uninstall-SPSolution: MyCo.MyTimerJob.JobDefinition cannot be deserialized because it does not have a public default constructor
Tried to uninstall through the SharePoint UI but had the same error.
The fix was to put the constructor back in the code, then take the DLL and GAC it onto the server. Use PowerShell for this or if you have permissions drop it into the c:\windows\assembly folder, then perform an IISReset for good measure. After that you can uninstall the solution and redeploy.
Uninstall-SPSolution: MyCo.MyTimerJob.JobDefinition cannot be deserialized because it does not have a public default constructor
Tried to uninstall through the SharePoint UI but had the same error.
The fix was to put the constructor back in the code, then take the DLL and GAC it onto the server. Use PowerShell for this or if you have permissions drop it into the c:\windows\assembly folder, then perform an IISReset for good measure. After that you can uninstall the solution and redeploy.
Sunday, March 04, 2012
Windows 8, VirtualBox & Hyper-V
How could I resist...don't tell Corporate IT, but I just spent the weekend installing Windows 8 on my HP 8540w workstation. The install went fine, ended up doing a clean install as the upgrade didn't complete for whatever domain policy reason.
I'm mainly interested in Windows 8 because - FINALLY!!!! - Microsoft has a virtualization story for 64 bits. I started out using VirtualPC when I was doing SharePoint 2003 development - to be able to have a server running on my laptop with my own domain, being able to have multiple servers running to simulate my SharePoint production environments, priceless. Then along came SharePoint 2010 and so much for VirtualPC...like many others I had found out about VirtualBox & have become a fan - it's a great piece of software, has been running like a charm for me & my team, but darn it, my production servers are running Hyper-V and it would be nice to try it, but was I willing to install Server 2008 as my host OS? nah....
So here we are with Hyper-V now on Windows 8. I'm kind of hip deep in some development projects so I can't just switch over entirely to it yet, so I thought to install VirtualBox first, to be able to keep on working, then migrate over to Hyper-V.
Problem #1...I couldn't enable video acceleration in VirtualBox. Yeah, not a big deal, but I went in to Control Panel & saw it was using the default Microsoft video driver as my graphics card driver. That wasn't going to work...so I installed the latest NVidia graphics driver from the HP 8540w Windows 7 drivers site and I'm good to go. Display looks MUCH nicer too, thank you very much.
Problem #2...so I couldn't get to the VirtualBox properties System Acceleration tab - it was grayed out. Tried booting up the VPC & it kept rebooting. The machine settings were correct - IO APIC enabled, enough RAM, 2D video acceleration...but still wouldn't start up Windows. I know my laptop supports processor enhancements, but then thought to remove Hyper-V (Start / Run / appwiz.cpl) and removed Hyper-V....then the acceleration tab is enabled, and the VPC started up just fine.
So for now, looks like only one virtualization technology at a time. Soon as my development project dust is done - or next weekend, whichever comes first - I'll get a new Hyper-V dev environment spun up, then it'll be all Hyper-V going forward. Hmm, let's see if I can take my VirtualBox VHD & import them into Hyper-V - be back in a bit!
Thursday, January 26, 2012
SharePoint 2010 - Access is Denied, and I'm Site Collection Owner!
Had an interesting one yesterday. I finally got around to clearing up those annoying warning messages about the Cache Super Reader account in my Windows Event Viewer logs on one of my servers. I used the stsadm command to set the property for both the Cache SuperReader and SuperUser accounts, good to go - or so I thought!
Came in the next morning to find the server still up, but no one able to access any site collections on the web application where I set those accounts! SharePoint came back with Access is Denied, even though it was all fine yesterday, and the users were set up as Site Collection Owner through Central Admin. The logs didn't show a whole lot, other than an issue with Kerberos and the Services account I'm using - odd.
Knowing the last thing I changed was that cache account, I double checked the values, ran the PowerShell script referenced in the very good article SharePointServerCachesPerformance.docx - highly recommended read! The issue for me turns out that those accounts weren't added correctly in the User Policy for the web application. I repeated this on a dev box this morning, and verified indeeed you have to make sure your User Policy settings are correct:
Happy 2012!!
Came in the next morning to find the server still up, but no one able to access any site collections on the web application where I set those accounts! SharePoint came back with Access is Denied, even though it was all fine yesterday, and the users were set up as Site Collection Owner through Central Admin. The logs didn't show a whole lot, other than an issue with Kerberos and the Services account I'm using - odd.
Knowing the last thing I changed was that cache account, I double checked the values, ran the PowerShell script referenced in the very good article SharePointServerCachesPerformance.docx - highly recommended read! The issue for me turns out that those accounts weren't added correctly in the User Policy for the web application. I repeated this on a dev box this morning, and verified indeeed you have to make sure your User Policy settings are correct:
- Open SharePoint Central Admin
- Click on Application Management
- Click Manage web applications under Web Applications
- Select (single click) the web app having issues (or better yet do them all while you're here!)
- Click on the User Policy icon in the ribbon
- Click Add Users
- Click Next to select the zone, go with the default All Zones
- Enter in the account of your SuperReader user, and grant this account Full Read permissions, then click Finish.
- Repeat this for the SuperUser user, but grant this user Full Control.
- iisreset - and let those users log in!
Happy 2012!!
Wednesday, December 28, 2011
Road trip
Here we are at the end of December & I realize I have been a neglectful blogger in 2011! I promise I'll get a post on SharePoint Web Templates before the end of the year, but I still have vacation on the mind for now...just back from two weeks in China with the family. The most indespensible tool of the trip: the iPhone 4g!!
For those of you planning a trip to China, the news is yes, your iPhone will work just fine. I signed up for a 125MB data plan with AT&T before we left, then once the plane landed & we were through immigration, I powered up the phone, and it connected straight away to China Unicom. Note, in two weeks I used 180MB of data, even with many of the hotels having wireless access - so sign up for more than you think you'll need. 125MB cost me $49.95, we'll see what the extra 55MB is going to set me back! Apparently it would be prorated for the amount not used, so think big.
There were a few iPhone apps I found particularly helpful - the Explore Metro subway navigation maps were fantastic - I downloaded the Shanghai & Beijing versions, very helpful for route planning, finding the closest metro station, and knowing the fares, especially in Shanghai where fares vary by distance. These apps are $2.99 each but are well worth it.
TripAdvisor's app was also helpful for showing restaurants & attractions based on my current location, and being able to search by type. I used the hotel's wireless connection with the laptop to write reviews on the TripAdvisor web site.
The navigation & GPS capability of the iPhone itself was the most helpful of all. I was able to plug in an address in English (pinyin) & it would find the location just fine, then I'd be able to use the live navigation to make sure we told the taxi driver the right place! On one trip the taxi driver used it to help us find the hotel - the street names were shown in Chinese characters as well as pinyin. Maps worked just fine, had a lot of the points of interest already on the map, so easy to find them.
On the map, tap the location indicator twice and the phone display orientates itself to a relative, compass based setting. So now you know which way to head to get to the nearest Starbucks, is that useful or what!!!
If you're planning on traveling between cities, the train system was really convenient, reasonably priced, comfortable & on time. There's an app to help understand train schedules, really good. Armed with the "G" train number and time of departure, we were able to purchase tickets knowing the time & price before getting to the counter.
How the subway systems in Beijing & Shanghai work:
It's been 9 years since we were in China last, and the pace of change in that time was remarkable. In Shanghai, we saw a Bentley dealership, apparently they are completely sold out through next year's production. Saw a lot of Maseratis, Porche Panamera's, 7 Series, you name it. Now the country side from the train still looked about the same, but I kept an eye on the phone the whole 5 hour trip from Beijing to Shanghai & had a solid 5 bars of signal the whole way.
Food prices were higher than we remembered. Going to dinner at a not-so-fancy place, in a somewhat touristy area, dishes ran from $3.50 for my favorite Yang Zhou Fried Rice, $10 for a delish dish of beef and Chinese broccoli, up to $25 for a "gui yu" sweet and sour fish. Mind you it was mighty tasty, but those prices are about what we'd pay here in the States...but our incomes are much higher in proportion. In a not so touristy area, I paid $15 for three bowls of noodles and a plate of veg, so I guess it does depend on where one goes.
Be prepared to reign in your personal space needs! There's a lot of people there, and the American bubble of space is much much larger than that of a typical Chinese! Expect to rub elbows & be gently nudged out of the way without an excuse me. Just the way it is, and it does work.
We bought some baby Mandarin oranges in Beijing & Shanghai, dang they were good! Great strawberries also.
Bargaining...it's all part of the program. Except in department stores, prices are negotiable. If you overhear someone buying the scarf of your dreams for 100RMB, when it's your turn the shop keeper will swear over their entire ancestores they never sold such a scarf for a measly 100RMB. Just be prepared to walk away...they'll come after you, but if the price still isn't what you want, really, walk away. The next vendor will have the exact same scarf at the price you want.
Hotels...the thing now seems to be glassed in bathrooms! Since how to put this delicately, when I'm enthroned I do like my privacy, there are shades to block the view. Goofy! Five star hotels are very nice indeed, but try some of the four star Chinese brands for a slight change of pace. If you can see if you can get breakfast included - at one five star, breakfast was RMB138 per person, so if that's included it'll save you some cash. If not included, go find a "Yong He Da Wang", get a bowl of fresh soy milk & some of those "yo tiao" doughnuts, and you'll have enough calories to keep you til the noon dumpling or noodle soup feed.
Money exchange...ATMs are now everywhere. The five star hotels we stayed in had money conversion machines - feed in your USD bills and get RMB back. This was convenient but expensive...the better bet is to take your greenbacks to a Bank of China office. Took us about 40 minutes at the BoC branch off People's Square in Shanghai, took about 15 minutes at the branch south of Tiananmen on Qianan Street. Same exchange rate for cash or traveler's checks now too, it seems.
Lastly, English...yes, there is plenty of English spoken, and be prepared to see people listening in to your chats on the subway & at restaurants, no worries it's just curiosity! At the same time, be armed with some basic Mandarin (or get the LearnChinese app & let it talk for you) to make things easier. For instance, "yi ge zhe ge" is your friend for pointing to a picture on a menu & asking for that item.
Needless to say yes we did enjoy our trip quite a bit. Our daughter really enjoyed it, she's a big fan of nui rou tang mian, had that for six straight meals & could keep going. Oh, one last thing...kudos to Delta Airlines for the seatback TV entertainment system - 13 hours of TV kept the daughter's attention with no fussing at all. Even some younger kids were parked still staring at Handy Manny for 13 hours. Even some, ah, older kids totally dug watching 2001: A Space Odyssey, Midnight in Paris, Harry Potter IV - 7 (could have seem them all & the LOTR trilogy), Tron:Legacy, and more!!
OK enough for now - next post will be about SharePoint web templates, promise!
Zai jian!
iPhone in China
For those of you planning a trip to China, the news is yes, your iPhone will work just fine. I signed up for a 125MB data plan with AT&T before we left, then once the plane landed & we were through immigration, I powered up the phone, and it connected straight away to China Unicom. Note, in two weeks I used 180MB of data, even with many of the hotels having wireless access - so sign up for more than you think you'll need. 125MB cost me $49.95, we'll see what the extra 55MB is going to set me back! Apparently it would be prorated for the amount not used, so think big.
There were a few iPhone apps I found particularly helpful - the Explore Metro subway navigation maps were fantastic - I downloaded the Shanghai & Beijing versions, very helpful for route planning, finding the closest metro station, and knowing the fares, especially in Shanghai where fares vary by distance. These apps are $2.99 each but are well worth it.
TripAdvisor's app was also helpful for showing restaurants & attractions based on my current location, and being able to search by type. I used the hotel's wireless connection with the laptop to write reviews on the TripAdvisor web site.
The navigation & GPS capability of the iPhone itself was the most helpful of all. I was able to plug in an address in English (pinyin) & it would find the location just fine, then I'd be able to use the live navigation to make sure we told the taxi driver the right place! On one trip the taxi driver used it to help us find the hotel - the street names were shown in Chinese characters as well as pinyin. Maps worked just fine, had a lot of the points of interest already on the map, so easy to find them.
On the map, tap the location indicator twice and the phone display orientates itself to a relative, compass based setting. So now you know which way to head to get to the nearest Starbucks, is that useful or what!!!
Subway & Train Travel
If you're planning on traveling between cities, the train system was really convenient, reasonably priced, comfortable & on time. There's an app to help understand train schedules, really good. Armed with the "G" train number and time of departure, we were able to purchase tickets knowing the time & price before getting to the counter.
How the subway systems in Beijing & Shanghai work:
- The Beijing subway system has single trip tickets available. Buy then at your departing station for 2 RMB per person. The fine print: you can only use the ticket to depart from the station where you purchased the ticket...so don't be clever like we tried to be by buying the return ticket at the same time, figuring you'd save hassle later. No go.
- Shanghai's train system is a bit more complicated because fares vary by distance. Here you can purchase a 20RMB stored fare ticket, then just make sure you have enough stored up. The station booth can deposit funds onto the ticket, no problem, and the entrance gates show how much fare remains. When you're ready to leave, you can cash in the ticket, again at the station where you purchased them. We were able to cash in the ticket at the Shanghai Railway Station at a convenience store, it was a bit complicated though!
- Use the ticket with the entry gate (slide it in for the day tickets or touch with the stored fare tickets), then use the same ticket to exit. The day tickets will be stored in the reader.
- Get to the station platform & decide which train to use - use your handy iPhone app to determine the previous & next stations, then look to see the directions for the trains indicated & hop on. There's a TV that shows when the next train will be arriving.
- Station announcements are made in Mandarin & English & are very clear.
- The trains in Shanghai & a few in Beijing have LED indicators showing where the train is between stations & which station is next.
- Dig the animation displays in the tunnels in Beijing!
- If a seat opens up - don't think, go for it!! This is a serious you snooze, you lose situation!
Other Impressions
It's been 9 years since we were in China last, and the pace of change in that time was remarkable. In Shanghai, we saw a Bentley dealership, apparently they are completely sold out through next year's production. Saw a lot of Maseratis, Porche Panamera's, 7 Series, you name it. Now the country side from the train still looked about the same, but I kept an eye on the phone the whole 5 hour trip from Beijing to Shanghai & had a solid 5 bars of signal the whole way.
Food prices were higher than we remembered. Going to dinner at a not-so-fancy place, in a somewhat touristy area, dishes ran from $3.50 for my favorite Yang Zhou Fried Rice, $10 for a delish dish of beef and Chinese broccoli, up to $25 for a "gui yu" sweet and sour fish. Mind you it was mighty tasty, but those prices are about what we'd pay here in the States...but our incomes are much higher in proportion. In a not so touristy area, I paid $15 for three bowls of noodles and a plate of veg, so I guess it does depend on where one goes.
Be prepared to reign in your personal space needs! There's a lot of people there, and the American bubble of space is much much larger than that of a typical Chinese! Expect to rub elbows & be gently nudged out of the way without an excuse me. Just the way it is, and it does work.
We bought some baby Mandarin oranges in Beijing & Shanghai, dang they were good! Great strawberries also.
Bargaining...it's all part of the program. Except in department stores, prices are negotiable. If you overhear someone buying the scarf of your dreams for 100RMB, when it's your turn the shop keeper will swear over their entire ancestores they never sold such a scarf for a measly 100RMB. Just be prepared to walk away...they'll come after you, but if the price still isn't what you want, really, walk away. The next vendor will have the exact same scarf at the price you want.
Hotels...the thing now seems to be glassed in bathrooms! Since how to put this delicately, when I'm enthroned I do like my privacy, there are shades to block the view. Goofy! Five star hotels are very nice indeed, but try some of the four star Chinese brands for a slight change of pace. If you can see if you can get breakfast included - at one five star, breakfast was RMB138 per person, so if that's included it'll save you some cash. If not included, go find a "Yong He Da Wang", get a bowl of fresh soy milk & some of those "yo tiao" doughnuts, and you'll have enough calories to keep you til the noon dumpling or noodle soup feed.
Money exchange...ATMs are now everywhere. The five star hotels we stayed in had money conversion machines - feed in your USD bills and get RMB back. This was convenient but expensive...the better bet is to take your greenbacks to a Bank of China office. Took us about 40 minutes at the BoC branch off People's Square in Shanghai, took about 15 minutes at the branch south of Tiananmen on Qianan Street. Same exchange rate for cash or traveler's checks now too, it seems.
Lastly, English...yes, there is plenty of English spoken, and be prepared to see people listening in to your chats on the subway & at restaurants, no worries it's just curiosity! At the same time, be armed with some basic Mandarin (or get the LearnChinese app & let it talk for you) to make things easier. For instance, "yi ge zhe ge" is your friend for pointing to a picture on a menu & asking for that item.
Needless to say yes we did enjoy our trip quite a bit. Our daughter really enjoyed it, she's a big fan of nui rou tang mian, had that for six straight meals & could keep going. Oh, one last thing...kudos to Delta Airlines for the seatback TV entertainment system - 13 hours of TV kept the daughter's attention with no fussing at all. Even some younger kids were parked still staring at Handy Manny for 13 hours. Even some, ah, older kids totally dug watching 2001: A Space Odyssey, Midnight in Paris, Harry Potter IV - 7 (could have seem them all & the LOTR trilogy), Tron:Legacy, and more!!
OK enough for now - next post will be about SharePoint web templates, promise!
Zai jian!
Friday, April 08, 2011
Referencing resources in SharePoint libraries
Wow, my first blog posting for 2011 - yes I have been busy, and neglectful!
One thing that's kept me busy is working with jQuery & SharePoint - very good stuff. But I have my jQuery js's and style sheets in a SharePoint document library. When I tried referencing them, I kept getting errors on the page...
because, I wasn't referencing these as:
<script src="./Jquery/jquery.tools.min.js" type="text/javascript">
Note the "." before the library name - that's what was missing.
Back to it! See ya!
One thing that's kept me busy is working with jQuery & SharePoint - very good stuff. But I have my jQuery js's and style sheets in a SharePoint document library. When I tried referencing them, I kept getting errors on the page...
because, I wasn't referencing these as:
<script src="./Jquery/jquery.tools.min.js" type="text/javascript">
Note the "." before the library name - that's what was missing.
Back to it! See ya!
Subscribe to:
Posts (Atom)
